它在任何版本的 HTML 中都有效。但有效性是一个正式的概念,也允许各种胡说八道。
在实践中,ol
表示项目的编号列表。它不是一个列表的抽象概念,一个有序的序列。例如,一个段落在逻辑上是一个语句序列,连续的段落构成更高层次的序列。甚至一个单词的字母也是一个有序的序列。我们仍然不使用ol
它们。我们使用ol
浏览器生成的编号来列出相当短的项目的逐项列表,例如食谱或购物清单或支持想法的参数列表。项目的长度没有具体的上限,除非它们越长,就越不适合以编号列表的形式呈现。
因此,如果您的列表项需要标题,那么您不应该使用列表。在实际方面,如果您用作 a 中的第一个h2
元素,则默认情况下,项目编号将以比标题小得多的字体显示(并且以正常重量显示,而不是粗体)。每当默认呈现非常奇怪时,您应该问自己是否正在使用 HTML 标记的真正用途。li
ol
该示例由以标题开头的段落组成。除了 or 之外,没有任何实际或理论上的理由为什么它应该具有标记h2
,p
除非出于样式或脚本的目的,您需要将标题和段落的组合视为一个单元,或将整个构造视为一个单元。如果您需要,请使用div
,例如
<div class="foo">
<div class="bar">
<h2>The First Item</h2>
<p>a descriptive paragraph</p>
</div>
<div class="bar">
<h2>The Second Item</h2>
<p>a descriptive paragraph</p>
</div>
<div class="bar">
<h2>The Third Item</h2>
<p>a descriptive paragraph</p>
</div>
</div>
将foo
and替换bar
为反映内容的名称,或替换为和 等通用section
名称subsection
。(这部分取决于品味和编码风格,部分取决于您是否打算对具有不同含义的内容使用类似的标记。)
或者,您可以section
按照 HTML5 草案使用标记,但这会导致问题,因为一些旧浏览器根本无法识别,并且在功能或外观方面没有实际好处(尽管这可能会改变)。
与类一起使用div
可以让您轻松地设置它们的样式(或在 JavaScript 中处理它们),而无需您首先需要防止的特殊默认呈现(作为带有边距的编号列表)的负担。
如果要对项目进行编号,最稳健的方法是最明显的方法:将数字放入标题中,例如<h2>1 The First Item</h2>
。如果您认为创作中的灵活性,即重新排序部件、添加和删除部件的可能性,而无需手动更改数字,足以证明在最旧的浏览器中缺少数字,您可以使用 CSS(自动编号和生成的内容) 插入数字。