【发布时间】:2013-02-21 16:06:13
【问题描述】:
我网站的 h1 也是“home”链接,所以很明显我把它放在了 nav 标签中。导航中的其他链接最初放在无序列表中,如下所示:
<nav>
<h1><a href="#" class="active">Site Name</a></h1>
<ul>
<li><a href="#">Nav Item 1</a>
<li><a href="#">Nav Item 2</a>
<li><a href="#">Nav Item 3</a>
</ul>
</nav>
标准,对吗?可以想象,在子页面上,导航保持不变,但“活动”类被应用于相关的导航项。
这就是问题所在。在移动屏幕宽度下,导航压缩到下拉菜单中,其中“活动”链接是下拉菜单上方显示的唯一链接。在 h1 是活动链接的主页上这很好,但似乎我的 CSS 在子页面上会变得非常混乱。
我注意到一些受人尊敬的前端开发人员使用没有有序/无序列表的列表项。这些人高度重视语义,所以我想知道他们可能在想......
所以我被困住了。把我的h1放在ul里好像错了,但这也好像错了:
<nav>
<li><h1><a href="#" class="active">Site Name</a></h1></li>
<li><a href="">Nav Item 1</a></li>
<li><a href="">Nav Item 1</a></li>
</nav>
我知道我几乎可以通过任何方式标记 HTML 来了解我想要实现的目标,但我希望尽可能在语义上做到这一点,同时避免 CSS/JS 噩梦/或任何黑客攻击。
【问题讨论】:
-
"一些受人尊敬的前端开发人员使用没有有序/无序列表的列表项"。愿意分享您指的是谁?
-
...仅仅因为其他人这样做...并不能使它正确...
-
为什么不正确?除了验证。我对语义很好奇。
-
恕我直言,每个 LI 项目都是一个“[L]ist[I]tem”,并且 ListItem 与 List 有依赖关系。从语义上讲,列表可以是有序的或无序的,HTML 为每个 OL + UL 提供了一个选项。考虑到作为开发人员,我经常需要一个父元素来设置整个列表的样式,因此 OL/UL 非常有意义。
标签: html list semantics listitem