html - 列表的正确写法

标签 html html-lists semantic-markup

这是我思考了一段时间的问题,因为我看到两者都在实践中使用过。

方法一

<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>)。

方法二

<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 项的子列表(尽管它可以通过人类推理理解)。

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

那么SO,你怎么看?可能的来源是可取的,但个人使用也很好。我注意到 MediaWiki 的继承目录使用的是方法 1,这鼓励我相信这是正确的用法。

最佳答案

方法 2 不是有效的 HTML。 OL 不允许作为另一个 OL 元素的直接子元素。 OL 中只允许使用 LI

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

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

方法 1 是可行的方法。

关于html - 列表的正确写法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383898/

相关文章:

javascript - 选择选项时为图像指定类别

javascript - 如何使用 angularJS ng-repeat 制作一个空网格?

html - 如何在没有 Jquery 的情况下在列表元素中创建多个列?

html - 对于同时也是文章的页面的主要内容,使用 <main> 或 <article> 哪个更正确?

html - 语义旁注的 HTML 元素是什么?

html - 我应该在这里使用 <p> 标签还是 <div> 标签?

html - html邮件中的位置相对/绝对问题

javascript - echarts-事件3.1.6

html - 在多行上水平对齐 ul 中的 li

css - 是否可以定位 CSS 中的最后一个列表元素?