Should ol/ul be inside

or outside?

后端 未结 5 2087
南笙
南笙 2020-11-22 11:26

Which is standard compliant between these two?

Text text text ...

  1. First element
相关标签:
5条回答
  • 2020-11-22 11:45

    The short answer is that ol elements are not legally allowed inside p elements.

    To see why, let's go to the spec! If you can get comfortable with the HTML spec, it will answer many of your questions and curiosities. You want to know if an ol can live inside a p. So…

    4.5.1 The p element:

    Categories: Flow content, Palpable content.
    Content model: Phrasing content.


    4.5.5 The ol element:

    Categories: Flow content.
    Content model: Zero or more li and script-supporting elements.

    The first part says that p elements can only contain phrasing content (which are “inline” elements like span and strong).

    The second part says ols are flow content (“block” elements like p and div). So they can't be used inside a p.


    ols and other flow content can be used in in some other elements like div:

    4.5.13 The div element:

    Categories: Flow content, Palpable content.
    Content model: Flow content.

    0 讨论(0)
  • 2020-11-22 11:45

    GO here http://validator.w3.org/ upload your html file and it will tell you what is valid and what is not.

    0 讨论(0)
  • 2020-11-22 11:51

    actually you should only put in-line elements inside the p, so in your case ol is better outside

    0 讨论(0)
  • 2020-11-22 11:58

    The second. The first is invalid.

    • A paragraph cannot contain a list.
    • A list cannot contain a paragraph unless that paragraph is contained entirely within a single list item.

    A browser will handle it like so:

    <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 -->
    
    0 讨论(0)
  • 2020-11-22 12:03
    <p>tetxetextex</p>
    <ol><li>first element</li></ol>
    <p>other textetxeettx</p>
    

    Because both <p> and <ol> are element rendered as block.

    0 讨论(0)
提交回复
热议问题