问题
I am wondering if can I wrap semantic elements with non-semantic elements for layout purposes. Do screen-readers etc. get only directly childs (like >
CSS selector) or can I wrap as much as I want?
Examples
div
wrapping header
<section>
<main>
<div>
<header>
<h1>Page title<h1>
</header>
</div>
<article>[...]</article>
</main>
</section>
Another div
's wrapping header
<body>
<div>
<div>
<header>
<h1>Page title<h1>
</header>
</div>
</div>
</body>
回答1:
You may add as many div and span elements as you need.
They don’t change the meaning (unless they have certain attributes, like lang
, title
, …), so these snippets are semantically equivalent:
<div>
<div>
<header>…</header>
</div>
</div>
<div>
<header>…</header>
</div>
<header>…</header>
来源:https://stackoverflow.com/questions/34483951/wrapping-semantic-elements-with-non-semantic-elements