Должен ли 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>

Ответ 1

Короткий ответ заключается в том, что ol элементы юридически не разрешены внутри p элементов.

Чтобы понять почему, давайте перейдем к спецификации ! Если вы освоитесь со спецификацией HTML, она ответит на многие ваши вопросы и вопросы. Вы хотите знать, может ли ol жить внутри p. Так…

4.5.1 Элемент p:

Категории: Поток контента, Пальпируемый контент.
Модель контента: Фразирование контента.


4.5.5. Элемент ol:

Категории: Поток контента.
Модель содержимого: ноль или более элементов li и поддержки сценариев.

В первой части говорится, что p элементы могут содержать только фразы (которые являются "встроенными" элементами, такими как span и strong).

Вторая часть говорит, что ol - это содержимое потока ("блочные" элементы, такие как p и div). Таким образом, они не могут быть использованы внутри p.


ol и другое flow content могут использоваться в некоторых других элементах, таких как div:

4.5.13 Элемент div:

Категории: Поток контента, Пальпируемый контент.
Модель контента: Поток контента.

Ответ 2

Второй. Первый недействителен.

  • Абзац не может содержать список.
  • Список не может содержать абзац, если этот абзац не содержится полностью в одном элементе списка.

Браузер будет обрабатывать его так:

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

Ответ 3

GO здесь http://validator.w3.org/ загрузите свой html файл, и он скажет вам, что действительно, а что нет.

Ответ 4

на самом деле вы должны поместить только внутри строки внутри p, поэтому в вашем случае ol лучше снаружи

Ответ 5

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

Потому что как <p>, так и <ol> - это элемент, отображаемый как блок.