这两者中哪一个是标准兼容的?

<p>Text text text ...
    <ol>
        <li>First element</li>
    </ol>
</p>
<p>
    Other text text ...
</p>

OR

<p>
    Text text text ...
</p>
<ol>
    <li>First element</li>
</ol>
<p>
    Other text text ...
</p>

第二。第一个无效。

段落不能包含列表。 列表不能包含段落,除非该段落完全包含在单个列表项中。

浏览器会这样处理它:

<p>tetxtextextete 
<!-- Start of paragraph -->
<ol>
<!-- Start of ordered list. Paragraphs cannot contain lists. Insert </p> -->
<li>first element</li></ol>
<!-- A list item element. End of list -->
</p>
<!-- End of paragraph, but not inside paragraph, discard this tag to recover from the error -->
<p>other textetxet</p>
<!-- Another paragraph -->

<p>tetxetextex</p>
<ol><li>first element</li></ol>
<p>other textetxeettx</p>

因为<p>和<ol>都是呈现为块的元素。


实际上,你应该只把内联元素放在p里面,所以在你的例子中,ol最好放在外面


简单的回答是ol元素在p元素中是不被允许的。

要了解原因,让我们看看规范!如果您熟悉HTML规范,它将回答您的许多问题和好奇。你想知道ol是否能住在p里面,所以…

4.5.1 p元素: 类别:流内容,可触及内容。 内容模型:措辞内容。


4.5.5 ol元素: 类别:流内容。 内容模型:零或多个li和脚本支持元素。

第一部分说p元素只能包含短语内容(即“内联”元素,如span和strong)。

第二部分说ols是流内容(“块”元素,如p和div)。所以它们不能用在p里面。


Ols和其他流内容可以在一些其他元素中使用,如div:

4.5.13 div元素: 类别:流内容,可触及内容。 内容模型:流内容。