【问题标题】:Semantic significance of <li> without <ol> or <ul>?没有 <ol> 或 <ul> 的 <li> 的语义意义?
【发布时间】: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


【解决方案1】:

The standard is clear

允许的父元素:

ul,ol,菜单

应避免任何其他用途,因为浏览器很可能不支持它。

规范禁止它的事实意味着没有公认的语义,除了每个开发人员发明供自己使用的语义。

【讨论】:

  • 因为它是无效的,所以没有公认的或规范化的语义......只有每个开发人员发明供自己使用的语义。
  • 是的。决定违背发明和惯例。现在使用&lt;nav&gt;&lt;menu&gt;&lt;li&gt;&lt;a&gt;&lt;h1&gt;..&lt;/a&gt;&lt;/li&gt;&lt;li&gt;... 等。我不想指定它是有序列表还是无序列表。可能是/或。这是一个选项菜单。它们的顺序(或缺少顺序)是偶然的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 2020-04-11
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多