是否应该将 HTML 5 语义标记用于样式?

Posted

技术标签:

【中文标题】是否应该将 HTML 5 语义标记用于样式?【英文标题】:Should HTML 5 semantic markup be used for styling at all? 【发布时间】:2012-04-08 01:05:38 【问题描述】:

我必须承认 html5 语义标记让我感到困惑。我特别在谈论这些标签:

<header>
<nav>
<section>
<article>
<aside>
<footer>

使用语义元素为 UA 提供了通常无法从 &lt;div&gt; 获得的信息,但它们应该与 &lt;div&gt; 标签一起使用,还是可以/应该为语义标记设置样式直接地?

换句话说,正确的方法是什么?

这个:

<div id="content">
    <section>
        <h1>Lorem ipsum></h1>
        <p>Text</p>
    </section>
</div>

或者这个:

<section id="content">
    <h1>Lorem ipsum></h1>
    <p>Text</p>
</section>

【问题讨论】:

标签本身的样式。请记住,某些浏览器存在 HTML5 标签问题,因此您需要一个脚本并重置样式来注入新元素,ala modernizr.com 【参考方案1】:

我相信您的第一个示例在语义上是正确的,假设您在该 div 标记中会有更多的 section 标记。

div 标记将暗示页面的一部分用于内容,然后section 标记类似于帖子。

【讨论】:

【参考方案2】:

如果你使用语义标记标签,你不应该同时使用分割标签来做同样的事情。语义标签是一些 div 标签的替代品。

div 标签当然还是有用的,因为当没有合适的语义标签时。

【讨论】:

【参考方案3】:

由于新标签并未被浏览器普遍识别,即使作为样式候选者,使用divclass 更安全。您还可以像以前一样选择仅使用divclass,并且您现在或在可预见的将来都不会丢失任何东西。没有软件关心新标签的“语义”。

【讨论】:

截至 2019 年已过时【参考方案4】:

第一个例子使用起来更安全。

<section>
  <h1>Lorem ipsum></h1>
  <p>Text</p>
</section>

是内容。

为了设置此内容的样式,您可以将其包装在容器中,例如。 div 带有样式钩子(类)并对其应用样式。

【讨论】:

以上是关于是否应该将 HTML 5 语义标记用于样式?的主要内容,如果未能解决你的问题,请参考以下文章

HTML语义化是什么?为什么要语义化?

语义化标签

body内常用标签

body内常用标签

前端教程body常用标签

语义 HTML:我应该将 <nav> 标签用于标签云吗?