如果你做linkList2
了一个,section
那么你的语义是“这是本节的导航”。请注意,nav
它已经在对content 进行分段,因此将其包装在 asection
中会有些多余。
另请注意,规范说:
并非页面上的所有链接组都需要位于 nav 元素中——该元素主要用于由主要导航块组成的部分。
没有必要nav
仅仅为了它而将每组链接都放在一个中。我认为您制作linkList2
a的方法nav
是最好的,尽管我不会太担心制作子元素section
:
<nav id="linkList2">
<div id="lselect">
<h1 class="select"><span>Select a Design:</span></h1>
<ul>
<!-- Links -->
</ul>
</div>
<div id="larchives">
<h1 class="archives"><span>Archives:</span></h1>
<ul>
<!-- Links -->
</ul>
</div>
<div id="lresources">
<h1 class="resources"><span>Resources:</span></h1>
<ul>
<!-- Links -->
</ul>
</div>
</nav>
正如我上面提到的,nav
是对内容进行分段,所以所有的标题都应该是h1
它们各自部分中的所有最高级别的标题(我已经在上面更改了它们)。但是,我认为,从实际可访问性的角度来看,仍然允许将它们保留为标记中的h3
前面h2
和h1
标题。
另一种可以的方法是:
<div id="linkList2">
<nav id="lselect">
<h1 class="select"><span>Select a Design:</span></h1>
<ul>
<!-- Links -->
</ul>
</nav>
<nav id="larchives">
<h1 class="archives"><span>Archives:</span></h1>
<ul>
<!-- Links -->
</ul>
</nav>
<nav id="lresources">
<h1 class="resources"><span>Resources:</span></h1>
<ul>
<!-- Links -->
</ul>
</nav>
</div>
正如我之前提到的,不要用section
(或article
)包装nav
就足够了。
最后一点,因为您的问题是关于语义的。我知道您正在处理 CSS Zen Garden 的标记,所以重点可能是让您的新页面中的元素与所有旧页面相对应,以便所有样式表仍然有效,但您应该知道这不是一个好的示例'语义标记'。以下是您应该注意的一些事项:
- 这个标记创建于 2003 年,所以它永远不会成为我们目前认为好的语义标记的一个很好的例子。
- 按照设计,CSS Zen Garden上的标记必须保持不变——它是 CSS 的演示,而不是 HTML 的演示。
- 因为在2003 年 IE6 是占主导地位的浏览器,而且无论如何都没有其他人在 CSS3 方面真正走得那么远,所以这个标记包含许多不必要的额外元素作为样式的可供性。值得注意的
span
是标题中的所有元素和(更有争议的)子div
元素lselect
和。larchives
lresources
- 除了缺少OOOCSS 之外,这个标记还展示了classitis - 不需要到处都有多个
id
和class
属性。例如,不需要同时具有id
oflselect
和 a class
of select
,而是可以只使用选择器#lselect h1
。
- 最后,
linkList2
是一个可怕的id
语义。它不在链表上,它是否是第二个取决于标记的所有其余部分。使用的id
s 和class
名称也是语义标记的一部分。