Basic HTML, CSS learning with a test web building project to implement what I learnt.
Table of contents generated with markdown-toc
Opening tags look like this:
<h1>
Closing tags look like this:
</h1>
//Hello World! Output:
<h1>Hello World!</h1>
<h2>I am Tom.</h2>
This element tells the browser about the structure of your website. h1
elements are often used for main headings, while h2 elements are
generally used for subheadings. There are also h3, h4, h5 and h6
elements to indicate different levels of subheadings.
p elements are the preferred element for paragraph text on websites.
p is short for “paragraph”.
<h1>Hello World</h1>
<h2>CatPhotoApp</h2>
<p>Hello Paragraph</p>
<!-- This is a comment in HTML -->
HTML5 introduces more descriptive HTML tags. These include main,
header, footer, nav, video, article, section and others.
These tags give a descriptive structure to your HTML, make your HTML
easier to read, and help with Search Engine Optimization (SEO) and
accessibility. The main HTML5 tag helps search engines and other
developers find the main content of your page.
<main>
<p>Lorem Ipsum</p>
<p>Lorem Ipsum2</p>
</main>
You can add images to your website by using the img element, and point
to a specific image’s URL using the src attribute. Note that img
elements are self-closing. All img elements must have an alt
attribute. The text inside an alt attribute is used for screen readers
to improve accessibility and is displayed if the image fails to load.
Note: If the image is purely decorative, using an empty alt
attribute is a best practice. Ideally the alt attribute should not
contain special characters unless needed.
<img src="https://www.freecatphotoapp.com/your-image.jpg" alt="A business cat wearing a necktie.">
<img src="https://www.bit.ly/fcc-relaxing-cat" alt="A relaxing cat.">
You can use a (anchor) elements to link to content outside of your
web page. a elements need a destination web address called an href
attribute. They also need anchor text.
<a href="https://www.freecodecamp.org">this links to freecodecamp.org</a>
<a href="https://www.freecatphotoapp.com"> cat photos </a>
a (anchor) elements can also be used to create internal links to
jump to different sections within a webpage.
To create an internal link, you assign a link’s href attribute to a
hash symbol # plus the value of the id attribute for the element
that you want to internally link to, usually further down the page. You
then need to add the same id attribute to the element you are linking
to. An id is an attribute that uniquely describes an element.
Below is an example of an internal anchor link and its target element:
<a href="#contacts-header">Contacts</a>
<h2 id="contacts-header">Contacts</h2>
When users click the Contacts link, they’ll be taken to the section of
the webpage with the Contacts header element.
# create an internal link, target="_blank" cause it to open a new
window tab
<a href="#footer" target="_blank">cat photos</a>
//Create a Jump to Bottom internal link with the footer element. It
is important to id the footer element, or other elements.
<main>
<a href="#footer">Jump to Bottom</a>
...
</main>
<footer id="footer">Copyright Cat Photo App</footer>
One of the key HTML elements we use to build a webpage is the body element. Only content inside the opening and closing body tags can be displayed to the screen. Here’s what opening and closing body tags look like:
<body>
</body>
Once the file has a body, many different types of content – including text, images, and buttons – can be added to the body.
<body>
<p>What's up, doc?</p>
</body>
main: The content inside the main element should be unique to the document. It should not contain any content that is repeated across documents such as sidebars, navigation links, copyright information, site logos, and search forms.
body: The body element contains all the contents of an HTML document, such as text, hyperlinks, images, tables, lists, etc.
An easy example, the footer element; you should put it inside the body, but outside the main, as you will do with your menu, or sidebar.
The <div> element is used as a container that divides an HTML document
into sections and is short for “division”. <div> elements can contain
flow content such as headings, paragraphs, links, images, etc.
<div>
<h1>A section of grouped elements</h1>
<p>Here’s some text for the section</p>
</div>
<div>
<h1>Second section of grouped elements</h1>
<p>Here’s some text</p>
</div>
The <html> element, the root of an HTML document, should be added
after the !DOCTYPE declaration. All content/structure for an HTML
document should be contained between the opening and closing <html>
tags.
<!DOCTYPE html>
<html>
<!-- I'm a comment -->
</html>
Add a elements to your website before you know where they will link.
This is also handy when you’re changing the behaviour of a link using
JavaScript. For example: href="#"
<!--dead link-->
<p>View more <a href="#" target="_blank">cat photos</a>.</p>
You can make elements into links by nesting them within an a element.
Nest your image within an a element. Here’s an example:
<a href="#"><img src="https://www.bit.ly/fcc-running-cats" alt="Three kittens running towards the camera."></a>
Remember to use # as your a element’s href property in order to
turn it into a dead link.
HTML has a special element for creating unordered lists, or bullet point
style lists. Unordered lists start with an opening <ul> element,
followed by any number of <li> elements. Finally, unordered lists
close with a </ul>. For example:
<ul>
<li>milk</li>
<li>cheese</li>
</ul>
HTML has another special element for creating ordered lists, or numbered
lists. Ordered lists start with an opening <ol> element, followed by
any number of <li> elements. Finally, ordered lists are closed with
the </ol> tag. For example:
<ol>
<li>Garfield</li>
<li>Sylvester</li>
</ol>
would create a numbered list of Garfield and Sylvester.
input elements are a convenient way to get input from your user. You
can create a text input like this:
<input type="text">
<p>Input type="text"<input type="text" placeholder="text here"></p>
<p>Input type="date"<input type="date"></p>
Note that input elements are self-closing.
Placeholder text is what is displayed in your input element before
your user has inputted anything. You can create placeholder text like
so:
<input type="text" placeholder="this is placeholder text">
form element. For example:
<form action="/url-where-you-want-to-submit-form-data">
<input type="text" placeholder="Text here">
</form>
Here’s an example submit button: put it within the form element
<button type="submit">Submit</button>
<form action="/url-where-to-submit-form-data">
<input type="text" placeholder="Text here" required>
<button type="submit">Submit</button>
</form>
For example, if you wanted to make a text input field required, you can
just add the attribute required within your input element, like
this: <input type="text" required>
<!--Radio buttons-->
<label for="indoor">
<input id="indoor" type="radio" name="indoor-outdoor"> Indoor</label>
<label for="outdoor">
<input id="outdoor" type="radio" name="indoor-outdoor"> Outdoor</label>
<!-- checkbox input element-->
<label for="Coffee">
<input id="Coffee" type="checkbox" name="morning"> Coffee</label>
<label for="Breakfast">
<input id="Breakfast" type="checkbox" name="morning"> Breakfast</label>
<label for="Dress">
<input id="Dress" type="checkbox" name="morning"> Dress</label>
When a form gets submitted, the data is sent to the server and includes
entries for the options selected. Inputs of type radio and checkbox
report their values from the value attribute. For example:
<label for="indoor">
<input id="indoor" value="indoor" type="radio" name="indoor-outdoor">Indoor</label>
<label for="outdoor">
<input id="outdoor" value="outdoor" type="radio" name="indoor-outdoor">Outdoor</label>
You can set a checkbox or radio button to be checked by default using
the checked attribute. To do this, just add the word checked to the
inside of an input element. For example:
<input type="radio" name="test-name" checked>
The div element, also known as a division element, is a general
purpose container for other elements.
The div element is probably the most commonly used HTML element of
all.
At the top of your document, you need to tell the browser which version of HTML your page is using. HTML is an evolving language, and is updated regularly. Most major browsers support the latest specification, which is HTML5. However, older web pages may use previous versions of the language.
You tell the browser this information by adding the <!DOCTYPE ...> tag
on the first line, where the ... part is the version of HTML. For
HTML5, you use <!DOCTYPE html>.
The ! and uppercase DOCTYPE is important, especially for older
browsers. The html is not case sensitive.
Next, the rest of your HTML code needs to be wrapped in html tags. The
opening <html> goes directly below the <!DOCTYPE html> line, and the
closing </html> goes at the end of the page.
Here’s an example of the page structure. Your HTML code would go in the
space between the two html tags.
<!DOCTYPE html>
<html>
</html>
You can add another level of organization in your HTML document within the html tags with the head and body
elements. Any markup with information about your page would go into the head tag. Then any markup with the content of
the page (what displays for a user) would go into the body tag. Metadata elements, such as link, meta, title,
and style, typically go inside the head element. Here’s an example of a page’s layout:
<!DOCTYPE html>
<html>
<head>
<meta />
</head>
<body>
<div>
</div>
</body>
</html>
Alignment, font styles, and horizontal rules in HTML documents (w3.org)
<p align="justify">paragraph</p>
GitHub: How to add Shields | Easy, visible info on your projects -
YouTube
Shields.io: Quality metadata badges for open source
projects
Study the web link address carefully, input in place of <input> and
remove the < > as well. Select the categories in the shields.io website
for interactive, dynamic badges linked to GitHub
Markdown:
<!--https://shields.io/--> <!--Markdown-->

HTML:
<!--https://shields.io/--> <!--HTML-->
<img alt="alt-text" src="https://img.shields.io/static/v1?label=<label>&message=<message>&color=<color>&logo=<name>">
<!--to make the badge into a link using anchor href-->
<a href="https://atom.io/" target="_blank"><img alt="Atom shields.io" src="https://img.shields.io/static/v1?label=Atom&message=editor&color=teal&logo=Atom"></a>
Activity: version
Click on the categories, e.g. activity, version is the release version
tag e.g. v1.0.0, shield.io will automatically check if the version
exist or not.