HTML5 (part 2) Semantic elements

Semantic elements:The HTML5 specification includes a series of new semantic elements that is used to give some meaning to the various sections or parts of a Web page, such as a:

header,
footer,
navigation, and so on.



In previous versions of HTML, you would typically use <div> elements to create these parts, using ID or class attributes to differentiate them from each other.
The problem with this is that this has no semantic meaning, as there are no strict rules defined that specify what class names or IDs are to be used, making it extremely difficult for software to determine what the particular area is doing. HTML5 should help alleviate these issues, making it easier
for Web browsers to parse the semantic structure of a document.
It is worth pointing out that continuing to use <div> elements in HTML5 is perfectly valid, but in order to future-proof the work, it is recommended that we use semantic elements where relevant. On the other side of the coin, it is also suggested that we avoid using these new elements for purposes other than their intended. For example, the <nav> element should not be used for just any group of links; it is intended to surround the main navigation block on the page.
The main semantic elements that HTML5 introduces are:
<header>
     This element is used to define a header for some part of a Web page, be it the
     entire page, an <article> element, or a <section> element.
<footer>
     Like the <header> element, this new element defines a footer for some part of
     a page. A footer does not have to be included at the end of a page, article, or
     section, but it typically does.
<nav>
     This is a container for the primary navigation links on a Web page. This
     element is not intended for use with all
groups of links and should be used for
     major navigation blocks only. If you have a <footer> element that contains
     navigation links, you do not need to wrap these links in a <nav> element, since
     the <footer> element will suffice on its own.
<article>
     The <article> element is used to define an independent item on the page that
     can be distributed on its own, such as a news item, blog post, or comment.
     Such items are typically syndicated using RSS feeds.
<section>
     This element represents a section of a document or application, such as a
     chapter or a section of an article or tutorial. For example, the section you are
     reading now could be surrounded by a <section> element in HTML5. <section>
     elements typically have a header, although it is not strictly required. The header
     for the section you are reading now would contain the text "Semantic
     elements," for example.
<aside>
     This new element can be used to mark up a sidebar or some other content that
     is considered somewhat separate to the content around it. An example of this
     might be advertising blocks.
<hgroup>
     In some cases, a page, article, or section may require more than one heading,
     such as where you have a title and a subtitle. This tutorial, for example, has the
     title "Create modern Web sites using HTML5 and CSS3" and the subtitle
     "Implementing the canvas and video elements in HTML5." You could wrap
     these in an <hgroup> element, using an <h1> element for the main title and an
     <h2> element for the subtitle.
The sample Web site at the end of this tutorial includes several of these new
semantic elements, and I will explain their syntax and use in more detail at that
point.