Насколько я знаю, это правильно
<div>
<p>some words</p>
</div>
Но это неправильно
<p>
<div>some words</div>
</p>
Первый может пройти валидатор W3C (XHTML 1.0), а второй - нет. Я знаю, что никто не напишет код, подобный второму. Я просто хочу знать почему.
А как насчет отношения сдерживания других тегов?
<p>
это элемент уровня блока, и (предполагается, что) он используется для отображения текста, он не позволит использовать внутри него другие элементы уровня блока, а только встроенные, такие как<span>
и<strong>
.p
есть элемент уровня блока не имеет к этому никакого отношения.div
также один и позволяет другие блоки.Ответы:
Авторитетным местом для поиска разрешенных отношений содержания является спецификация HTML. См., Например, http://www.w3.org/TR/html4/sgml/dtd.html . Он определяет, какие элементы являются блочными, а какие встроенными. Для этих списков найдите раздел с пометкой «Модели содержимого HTML».
Для элемента P это указывает следующее, что указывает, что элементам P разрешено содержать только встроенные элементы.
Это согласуется с http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 , в котором говорится, что элемент P «не может содержать элементы уровня блока (включая сам P)».
источник
%inline
бит выше. Смотрите также ответ Ориола.Короче говоря, невозможно поместить
<div>
элемент внутри a<p>
в DOM, потому что открывающий<div>
тег автоматически закроет<p>
элемент.источник
div
элемент внутри ap
в DOM , напримерmyP.appendChild(myDiv)
. Но анализатор HTML не сделает этого.В соответствии с HTML5, то модель содержимого из
div
элементов содержимого потокаЭто включает
p
элементы, которые могут использоваться только там, где ожидается поток содержимого .Следовательно,
div
элементы могут содержатьp
элементы.Тем не менее, модель содержимого из
p
элементов содержимого ФразировкаЭто не включает
div
элементы, которые могут использоваться только там, где ожидается поток содержимого .Следовательно,
p
элементы не могут содержатьdiv
элементы.Поскольку конечный тег из
p
элементов может быть опущен , когдаp
элемент непосредственно следуетdiv
элемент (среди прочих), следующиханализируется как
и последнее
</p>
является ошибкой.источник
div as inline in CSS
его, это бесполезно, так как новая разобранная структура<p>Text</p> <div>some words</div> <p></p>
является ли мое понимание правильным?После X HTML условные обозначения были изменены, и теперь это смесь условных обозначений XML и HTML, поэтому второй подход неверен, и валидатор W3C принимает правильные вещи в соответствии со стандартами и соглашениями.
источник
Потому что
div
тег имеет более высокий приоритет, чемp
тег.p
Тег представляет собой тег абзаца , тогда какdiv
тег представляет документ тег.Вы можете написать много абзацев в теге документа, но вы не можете написать документ в абзаце. Так же, как файл DOC.
источник
<doc>
: D