html - 我的网站的主标题是否需要所有这些 HTML5 标签?

标签 html semantics

我开始学习 html/css,在整个学习过程中,我发现语义的概念非常受重视。大多数时候我明白我应该使用什么并且一切正常。但很多时候感觉简单的东西标签太多了,例如:

假设我的站点上有一个带有一些导航链接的主标题,从语义上我得到了这个:

<section id="masterHeader">
    <header>
        <nav>
            <ul>
                <li><a href="#"> link </a></li>
            </ul>
        </nav>
     </header>
</section>

这是否太多了,还是我应该这样做,因为它确实很有意义?似乎有很多不需要的标签。

最佳答案

语义设计页面的目的不是因为它更容易让您作为设计者阅读(虽然这是一个很好的好处)或者因为它更轻量级(通常不是)。相反,语义设计的目的是为您的代码添加意义,而仅使用 ID 和类制作 div 是无法实现的。搜索引擎抓取您的网站可以在语义标记后更好地理解您的代码。

问题是,IE8 及更低版本本身不支持这些语义元素,因此需要 js shiv。但是如果禁用了 JS,那么您的布局会在 IE8 和更低版本中中断。在考虑使用 HTML5 元素之前,您必须认真权衡这一权衡,因为您的布局将在 IE8-6 中使用 no-js 中断。

此外,我认为 section 元素在您此处的使用中在语义上不正确(但我可能是错的,我必须检查 w3c 规范)。但这既不存在也不存在,主要是吹毛求疵。

关于html - 我的网站的主标题是否需要所有这些 HTML5 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726170/

相关文章:

linux - 如何在 bash 中使用 grep 删除 span 标签?

javascript - 删除 index.php WAMP

html - 响应式视频默认大小

c# - HTML:编码错误

c++ - 动态创建 std::vector 并将其传递给另一个函数的各种方法

parsing - Walter Bright 使用 "redundancy"... 或 'The heck does that mean?' 这个词

c++ - 与 C++ 模板混淆

javascript - jQuery Mobile - 使用 URL 参数打开可折叠集

c++ - 在 C++ [std::regex] 中替换表达式的内容

xcode - 错误消息 : Enumeration value 'GameMoveNineEnum' not handled in switch?