Headers
Let’s go back to our example page. Specifically, let’s look at the headers:
<div id="header"> <h1>My Weblog</h1> <p class="tagline">A lot of effort went into making this effortless.</p> </div> ... <div class="entry"> <h2>Travel day</h2> </div> ... <div class="entry"> <h2>I'm going to Prague!</h2> </div>
There is nothing wrong with this markup. If you like it, you can keep it. It is valid HTML5. But HTML5 provides some additional semantic elements for headers and sections.
First off, let’s get rid of that <div
id="header">. This is a very common pattern, but it doesn’t
mean anything. The div element has no
defined semantics, and the id attribute
has no defined semantics. (User agents are not allowed to infer any
meaning from the value of the id
attribute.) You could change this to <div
id="shazbot"> and it would have the same semantic value,
i.e., nothing.
HTML5 defines a <header> element for this purpose. The
HTML5 specification has a number of real-world examples of
using the <header> element. Here
is what it would look like on our example
page:
<header> <h1>My Weblog</h1> <p class="tagline">A lot of effort went into making this effortless.</p> ... </header>
That’s good. It tells anyone who wants to know that this is a header. But what about that tagline? Another common pattern, which up until now had no standard markup. It’s a difficult thing to mark up. A tagline is like a subheading, but it’s “attached” to the primary heading. That is, it’s a subheading that doesn’t create ...
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