别急着杀我,我只是出于好奇问问。
像<section>, <nav>, <article>, <aside>
等元素似乎完全没有意义。当然它们可以让每个元素都有自己的位置(并进行搜索引擎优化)...但是过度组织也是可能的。有些情况下,一些元素不属于任何类别。使用这些新元素编写代码还需要更多时间。我真的没有看到添加这些新元素的真正目的。
我们(开发人员和查看网页的人)从中获得了什么?
别急着杀我,我只是出于好奇问问。
像<section>, <nav>, <article>, <aside>
等元素似乎完全没有意义。当然它们可以让每个元素都有自己的位置(并进行搜索引擎优化)...但是过度组织也是可能的。有些情况下,一些元素不属于任何类别。使用这些新元素编写代码还需要更多时间。我真的没有看到添加这些新元素的真正目的。
我们(开发人员和查看网页的人)从中获得了什么?
HTML5样式化CSS也更容易阅读:
div#header
div#content .article
div#content .article h1
div#content .article h1+h2
div#footer
vs
header
section#content
section#content article
section#content article hgroup h1
section#content article hgroup h2
footer
(不使用高级选择器)
正如keyboardP通过引用所暗示的那样,对于非人类访问者来说,导航页面更容易。它增加了语义。但我同意你的观点,有时很难弄清楚要使用哪个元素section
,article
或老旧的div
。在我看来,这使得语义变得不太强。但我们拭目以待。
section
前面加上选择器,只需要使用 #content
就可以了,这样既简洁又快速。 - Michael这一切都与语义有关!
但我同意你的观点,对于一些人来说,这些新的标记似乎毫无意义。一个经常被问到的问题是为什么选择这些特定的标记而不是其他任何标记,特别是一些标记非常适用于博客(例如article、section等),但没有包括其他常用的名称,比如产品或内容。正如您在下面的评论中所看到的,这是一个备受争议的话题!
因此,使用这些新标记取决于您如何编写标记,而且如何去做也没有对错之分。以列表为例,您可能会将其用于导航,不想对其进行样式化,并将其用于主要内容并需要进行样式化。您可以添加额外的类来指定哪些列表已进行了样式化,也可以只使用标记并从标记中针对样式进行操作:
<nav> <ul> <li><a href="">导航项1</a></li> <li><a href="">导航项2</a></li> </ul> </nav> <div> <ul> <li><a href="">列表项1</a><li> <li><a href="">列表项2</a></li> <ul> </div>
在您的CSS中:
ul { list-style: bullet } nav ul { list-style: none; }
nav
是第8个最常用的类;2.navigation
不在前20名中;3.nav
占用的带宽比navigation
少。 - Paul D. Waite好的,哪个听起来更加高效易读:
<div id="nav">list of links</div>
<div id=header>
<div id=section>content is good
</div>
</div>
<div id=footer>copyright</div>
vs
<nav>list of links</nav>
<header>
<section>content is good</section>
</header>
<footer>copyright</footer>
在 DIV 混乱的堆积中扫描部分、标题和对话框会更容易。这样做还可以提高盲人的可访问性,因为它可以清楚地告诉屏幕阅读器它是什么。文章标签也是如此。此外,它可以改善结构并为标签提供更多含义。
有些网络浏览器不支持未知元素上的 CSS 样式,我认为这非常短视。
允许标题范围是使用<section>
和<article>
的主要好处。请参见http://diveintohtml5.info/semantics.html#header-element。
简而言之,在HTML5中,更容易标记文档的大纲(对于屏幕阅读器非常有用),而不必担心是否使用<h2>
或<h3>
等(当您在不同页面的不同位置包含组件时,这变得非常复杂)。
他们不能使用<div>
来实现这一点,因为已经有数十亿个网页使用了<div>
和标题,而不一定意味着标题范围。
诚然,<section>
和<hgroup>
已足够实现此目的。