我知道为<section>
标记添加样式是不正确的,但<header>
和<footer>
标记的样式如何。如果使用这些标记提供了更多的语义标记,那么应该使用它们,但是,如果它们不能被设置样式,那么仍然需要在标记内插入<div>
来包装内容并为其设置样式。
我知道可以设置<header>
样式,但我不确定这样做是否正确。
所以问题是:html5标签应该设置样式还是应该放置<div>
来处理样式?
答案 0 :(得分:38)
规范中没有任何内容表明您不能或不应该设置HTML5元素,例如<section>
或<article>
。它只是说你不应该在某个地方放置一个语义HTML5元素'为了'造型。请改用<div>
。
因此,如果您有语义上的原因要在某处添加<section>
或<article>
,那么无论如何添加它 AND 也可以自由设置样式。但是如果为了样式目的而必须包装标记的一部分(例如添加边框或向左浮动等),但该部分在标记中没有任何语义含义,则使用{ {1}}。
例如:
<div>
<div class="mainBox">
<nav class="breadcrumbs">
<ol>
<li>...list of links (snip)....</li>
</ol>
</nav>
<section>
<h1>Latest Tweets From Twitter</h1>
<article>
//... a Tweet (snip)... //
</article>
<article>
//... a Tweet (snip)... //
</article>
//... lots more Twitter posts (snip)... //
</section>
</div>
元素是您网页的主要部分(即您的推文列表),并且在开头还有一个标题,这是必需的。但它包含在div.mainBox元素中,因为您可能想要围绕面包屑和截面部分包裹边框,即。它纯粹用于造型。但是没有什么可以阻止你设置<section>
和<section>
元素的样式。
答案 1 :(得分:3)
设置这些标签的样式并不是错误的,但它们不仅仅用于样式目的,因为它们提供语义功能。通过所有方式设置您需要使用的元素,但不要添加它们来实现样式,从而破坏语义。
话虽如此,您还必须注意它们的样式,因为它们无法被所有浏览器识别。例如,IE6和7不会应用样式,因为它们无法识别元素名称。您可以使用ARIA标签在IE7中解决这个问题,这样可以让您进行一些样式控制。