ol / ul应该在<p>内还是在外面?</p>

时间:2011-04-15 19:33:36

标签: html

这两者之间是否符合标准?

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

5 个答案:

答案 0 :(得分:366)

简短的回答是ol元素在p元素内不合法允许。

要了解原因,请go to the spec!如果您对HTML规范感到满意,它将回答您的许多问题和好奇心。您想知道ol是否可以居住在p内。所以......

  

4.5.1 The p element

     
    

分类: Flow contentPalpable content
    内容模型: Phrasing content

  

  

4.5.5 The ol element

     
    

分类: Flow content
    内容模型:零个或多个liscript-supporting元素。

  

第一部分说p个元素只能包含phrasing content(“内联”元素,如spanstrong)。

第二部分说olflow content(“阻止”元素,如pdiv)。所以他们不能p内使用。


ol和其他flow content可用于div等其他元素:

  

4.5.13 The div element

     
    

分类: Flow contentPalpable content
    内容模型: Flow content

  

答案 1 :(得分:38)

第二个。第一个是无效的。

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

浏览器会像这样处理它:

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

答案 2 :(得分:10)

来这里http://validator.w3.org/ 上传你的html文件,它会告诉你什么是有效的,什么不是。

答案 3 :(得分:8)

实际上你应该只在p内添加内联元素,所以在你的情况下ol更好吗

答案 4 :(得分:5)

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

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