html5: using header or footer tag twice?
Solution 1
Yes, but with a catch. The W3 documents state that the tags represent the header and footer areas of their nearest ancestor section. I would recommend having as many as your want, but only 1 of each for each "section" of your page, i.e. body, section etc.
From W3
A header element is intended to usually contain the section's heading (an h1–h6 element or an hgroup element), but this is not required. The header element can also be used to wrap a section's table of contents, a search form, or any relevant logos.
=========================
The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.
Here are links to their respective standard documentation: header and footer
Solution 2
Yes you can use multiple header
elements in your documents, by virtue of the w3c documentation:
A header element is intended to usually contain the section's heading (an h1–h6 element or an hgroup element), but this is not required. The header element can also be used to wrap a section's table of contents, a search form, or any relevant logos.
However ensure that it is semantically correct.
Solution 3
There's no penalty for using two header tags, but make sure it makes sense.
Happy coding!
Solution 4
The <header>
is used to mark the header of e.g. articles in newspaper, so if you have multiple articles you can use multiple <header>
.
It's like using multiple <h1>
. It does only make sense in some special case.
Solution 5
In some situation, it is posible put two <header>
in single <article>
/<section>
like this, so why not.
<article>
<!-- Feature Image on the LEFT -->
<div class="position-left">
...featrue image...
<header>
...H1 title ...
</header>
</div>
<!-- Content on the RIGHT with subtitle, date, etc -->
<div class="position-right">
<header>
..date, sub-title, etc...
</header>
...content...
<footer>..</footer>
</div>
</article>
matt
Updated on September 08, 2020Comments
-
matt almost 4 years
quick question: is it actually allowed to use the header tag twice? e.g. i have two important head-sections in my header.php where both could have header tag?
-
user1855153 over 10 yearsIf I do this, the header would englobe all my sections, >> I don't think this is want we want... ;) You can have a header and a footer per section.
-
unor over 10 yearsI don’t agree with your catch. It’s still valid (and can also make sense) to have several
header
elements in one sectioning content/root element. -
Cyril Duchon-Doris over 7 yearsWhat about nested sections and (therefore) nested headers in sections ?
<section> <header><h1>...<h1></header> <section class="subsection"> <header class="subsection-header"><h2>...</h2> </header> </section> </section>
-
Daniel Tonon about 6 years@Cyril Duchon-Doris, No a
<header>
element can not be a descendent of another<header>
element. "Permitted parents: Any element that accepts flow content. Note that a <header> element must not be a descendant of an <address>, <footer> or another <header> element." - developer.mozilla.org/en-US/docs/Web/HTML/Element/header -
Daniel Tonon about 6 yearsFYI, there are 5 types of "sectioning" elements:
<body>
,<nav>
,<section>
,<article>
, and<aside>
. Each sectioning element can only have one<header>
and one<footer>
associated with it. It doesn't make sense for a section to have more than one header or footer. -
funct7 over 4 years@DanielTonon 1.
<body>
is NOT a section element according to this page. 2. Unless there is explicit documentation that only one<header>
and one<footer>
is permitted per section element, it's just your opinion. Please don't state like it's a rule. -
Daniel Tonon over 4 yearsOk yeah,
<body>
isn't a "sectioning element", but it does form the default document section and is categorised as a "sectioning root" element which makes it very similar to a sectioning element in how it behaves. I did miss speak when I said that it "is" a sectioning element though. -
Volper over 4 yearsWhy wouldn't you make these
<div>
s<article>
s or<section>
s then?