Должен ли 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>
- это элемент, отображаемый как блок.