正确的写清单的方法

时间:2008-12-20 23:50:38

标签: html html-lists semantic-markup

我已经思考了一段时间,正如我在实践中看到的那样。

方法1

<ol>
    <li>List item 1</li>
    <li>List item 2
        <ol>
            <li>List item 3</li>
        </ol>
    </li>
    <li>List item 4</li>
</ol>

这对我来说在语义上是正确的,因为子列表是该列表项的子列表,但它不是很干净(列表项内容<list right next to it>)。

方法2

<ol>
    <li>List item 1</li>
    <li>List item 2</li>
        <ol>
            <li>List item 3</li>
        </ol>
    <li>List item 4</li>
</ol>

更清洁,但这不是直接可以理解的,列表是第2项的子列表(尽管通过人类推理可以理解)。

这纯粹是对语义标记的关注,两种方法都在页面上呈现相同的内容。

那么,你怎么看?可能的来源是可取的,但个人使用也是好的。我注意到MediaWiki的heirachial TOC正在使用方法1,这鼓励我相信这是正确的用途。

3 个答案:

答案 0 :(得分:13)

方法2无效HTML。不允许OL作为另一个OL元素的直接子元素。 LI中仅允许OL

此外,第2项的子列表的成员资格对于人类读者来说只是因为缩进而显而易见。使用LI进行缩进,看起来内部列表本身就是第三个项目。我可能期望像这样的渲染,有两个数字:

1. List item 1
2. List item 2
3. 1. List item 3
4. List item 4

方法1是要走的路。

答案 1 :(得分:2)

方法1是正确的。

答案 2 :(得分:2)

HTML 4.01仅允许OL中的LI项目。但是,LI的结束标记是可选的。这意味着这相当于您的方法1:

<ol>
   <li>List item 1
   <li>List item 2
      <ol>
        <li>List item 3
      </ol>
   <li>List item 4
</ol>

关闭LI的读者有点模棱两可 - 尽管规范很清楚,在关闭OL之后它将是

XHTML 1.1具有相同的限制,但强制使用结束LI使其明确。