ol / ul应该在<p>还是在外?
这两者之间是否符合标准?
<p>Text text text ... <ol> <li>First element</li> </ol> </p> <p> Other text text ... </p>
要么
<p> Text text text ... </p> <ol> <li>First element</li> </ol> <p> Other text text ... </p>
简单的回答是ol元素在p元素内部是不合法的。
为了明白为什么,让我们来看看规范 ! 如果你可以习惯HTML规范,它会回答你的许多问题和好奇心。 你想知道一个ol可以住在p里面。 所以…
4.5.1
p元素 :类别: stream量内容 , 可触摸内容 。
内容模型: 短语内容 。
4.5.5
ol元素 :类别: stream量内容 。
内容模型 :零个或多个li和脚本支持元素。
第一部分说p元素只能包含短语内容 (即“内联”元素,如span和strong )。
第二部分说, ol是stream量内容 (像p和div这样的“块”元素)。 所以他们不能用在p里面。
ol和其他flow content可以用在像div这样的其他元素:
4.5.13 div元素 :
类别: stream量内容 , 可触摸内容 。
内容模型: stream内容 。
第二。 第一个是无效的。
- 段落不能包含列表。
- 除非该段完全包含在单个列表项中,否则列表不能包含段落。
浏览器会像这样处理它:
<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里面放入内联元素,所以在你的情况下, ol是更好的
<p>tetxetextex</p> <ol><li>first element</li></ol> <p>other textetxeettx</p>
因为<p>和<ol>都是以块的forms呈现的。