Articles
Continuing with our example page, let’s see what we can do about this markup:
<div class="entry">
<p class="post-date">October 22, 2009</p>
<h2>
<a href="#"
rel="bookmark"
title="link to this post">
Travel day
</a>
</h2>
...
</div>Again, this is valid HTML5. But
HTML5 provides a more specific element for the common
case of marking up an article on a page—the aptly named <article> element:
<article> <p class="post-date">October 22, 2009</p> <h2> <a href="#" rel="bookmark" title="link to this post"> Travel day </a> </h2> ... </article>
Ah, but it’s not quite that simple. There is one more change you should make. I’ll show it to you first, then explain it:
<article>
<header>
<p class="post-date">October 22, 2009</p>
<h1>
<a href="#"
rel="bookmark"
title="link to this post">
Travel day
</a>
</h1>
</header>
...
</article>Did you catch that? I changed the <h2> element to an <h1>, and wrapped it inside a <header> element. You’ve already seen the
<header> element in action. Its
purpose is to wrap all the elements that form the article’s header (in
this case, the article’s publication date and title).
But...but...but...shouldn’t you only have one <h1> per document? Won’t this screw up the
document outline? No, but to understand why not, we need to back up a
step.
In HTML 4, the only way to
create a document outline was with the <h1>–<h6> elements. If you only wanted one root
node in your outline, you had to limit yourself to one <h1> in your markup. But the
HTML5 specification defines ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access