在HTML中语义上是否正确标记仅包含单个列表项的列表?

时间:2012-05-31 13:49:55

标签: html html-lists semantic-markup

在HTML中使用另一个只有一个列表项的嵌入式ul标记ul语义是否正确?

例如,我有ullili,其中一个ul的嵌入式li只有一个<ul> <li>Example LI 1 <ul> <li>Example LI 1a</li> </ul> </li> <li>Example LI 2</li> <li>Example LI 3</li> </ul>

{{1}}

3 个答案:

答案 0 :(得分:13)

绝对。列表不是由数量定义的。它由语义定义。因此,如果只有一个项目适用于列表的目的,则列表只能包含一个元素。例如,我今天只崩溃了一台计算机,因此列表只有一个元素长。

答案 1 :(得分:2)

是的,如果使用正确的话,拥有单个项目的列表在语义上是正确的,即使它确实感觉有点奇怪(如果只有一个项目,它不是真正的列表,因为根据定义,列表是,很好项目 s 列表,否则它只是 项目。)

在您提供的示例中,项目是占位符,没有任何意义,因此很难判断它是否适用。它是否正确取决于为什么你将它放在一个子项目中。如果确实是列表项,则具有单项子列表是完全合理的,特别是如果存在具有多个项目的其他子列表。在这种情况下,意义是明确的。例如,以下情况很好:

<h1>Auto Insurance Customers</h1>
<ul>

  <li>
    <strong>#1234</strong>
    <ul>
      <li>2003 Ford Focus</li>
      <li>1998 Ford Escort</li>
    <ul>
  </li>

  <li>
    <strong>#2468</strong>
    <ul>
      <li>1999 Lamborghini Diablo VT Roadster</li>
    </ul>
  </li>
  …

</ul>

这个例子没有任何问题,因为顾客拥有一辆汽车是完全合理的,而其他人可能拥有更多。


另一方面,如果您创建单项子列表的原因只是创建缩进以缩进并突出显示列表项的一部分,那么它是不正确的。

例如,假设您有一个文本段落列表。在其中一段中,您有一段需要某种注意力的段落,并且您希望缩进并抵消它。虽然将它放在列表中会起作用,但这是不正确的,因为你将风格与结构混合在一起。

实现此目的的正确方法是将该部分包装在另一个标记中(如<blockquote>,样式<div>等),并将其保留在该列表项的常规流中。在以下示例中,需要突出显示其中一个列表项的一部分。将它放在(单项)列表中是错误的方法:

<h1>Blog posts or something…</h1>
<ul>

  <li>
    <strong>Foo</strong>
    <p>Some long paragraph about Foos, what they do, how they work, etc.</p>
    <p>More information about Foos and where they originated.</p>
    <p>Instructions on care and feeding of Foos.</p>
  </li>

  <li>
    <strong>Bar</strong>
    <p>Detailed description of local watering holes for lawyers.</p>
    <p>Anecdotes about experiences of drinking & lawyering.</p>

    <!-- This section is to be highlighted and offset to draw attention to it from the rest of this list item. -->
    <ul>
      <li>
        <p>Highlighted account of the subsequent problems and what happened that one strange night.</p>
      </li>
    </ul>

    <p>Summary of what to not do when out drinking with lawyers.</p>
  </li>

  <li>
    <strong>Baaz Luhrmann</strong>
    <p>A bunch of stuff about a brass-skinned movie director who made a widely-panned film adaptation of a Shakespeare play who turns to stone and traps your sword when he dies.
  </li>

</ul>


相反,您应该为此目的使用正确的标记。它不仅在语义和结构上都是正确的,它也更清晰,甚至可以减少页面的大小:

<style…>
  p.highlight {
    margin : 20px 50px;
    width  : 150px;
  }
</style>

…
  <li>
    <strong>Bar</strong>
    <p>Detailed description of local watering holes for lawyers.</p>
    <p>Anecdotes about experiences of drinking and lawyering.</p>

    <!-- This section is to be highlighted and offset to draw attention to it from the rest of this list item. -->
    <p class="highlight">
      Highlighted account of the subsequent problems and what happened that one strange night.
    </p>

    <p>Summary of what to not do when out drinking with lawyers.</p>
  </li>

答案 2 :(得分:0)

根据dictionary.com,list是一组有意义的分组项目,series是一组相似或相关的项目。 (在oxforddictionaries.com和thefreedictionary.com上的结果类似。)任何只包含一个项目的内容都不能包含有意义的分组或其内容之间的相似性或相关性。因此,对于单项列表,标记的语义与内容的语义不匹配。

单项列表似乎也不符合人们说“列表”时的含义。 (在这方面,当代词典更注重记录常用用法而不是正确用法(这就是为什么“bling”在OED中)。)

此外,即使技术上没有错误,在将这样一个简单的陈述标记为列表而不是段落时似乎没有太大的编辑价值。在我看来,以下三个示例中的第一个对于用户来说是最容易解析和理解的。

<p>XYZ is the only computer that crashed.</p>

<p>
     The computer that crashed:
     <ul><li>XYZ</li></ul>
<p>

<ul>
     <li>
          The computer that crashed:
          <ul><li>XYZ</li></ul>
     </li>
<ul>