样式化HTML5元素

时间:2010-08-23 16:49:19

标签: html css html5

我知道为<section>标记添加样式是不正确的,但<header><footer>标记的样式如何。如果使用这些标记提供了更多的语义标记,那么应该使用它们,但是,如果它们不能被设置样式,那么仍然需要在标记内插入<div>来包装内容并为其设置样式。

我知道可以设置<header>样式,但我不确定这样做是否正确。

所以问题是:html5标签应该设置样式还是应该放置<div>来处理样式?

2 个答案:

答案 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中解决这个问题,这样可以让您进行一些样式控制。