Qual é a conformidade padrão entre esses dois?
<p>Text text text ...
<ol>
<li>First element</li>
</ol>
</p>
<p>
Other text text ...
</p>
OU
<p>
Text text text ...
</p>
<ol>
<li>First element</li>
</ol>
<p>
Other text text ...
</p>
Respostas:
A resposta curta é que
ol
elementos não são legalmente permitidos dentro dep
elementos.Para ver o porquê, vamos às especificações ! Se você se sentir confortável com a especificação HTML, ela responderá a muitas de suas perguntas e curiosidades. Você quer saber se um
ol
pode viver dentro de ump
. Assim…A primeira parte diz que os
p
elementos podem conter apenas conteúdo de frases (que são elementos "inline", comospan
estrong
).A segunda parte diz que
ol
s são conteúdo de fluxo (elementos de "bloco" comop
ediv
). Então eles não podem ser usados dentro dep
.ol
se outrosflow content
podem ser usados em alguns outros elementos, comodiv
:fonte
4.4.1 The p element
, o autor sequer falarfantastic sentences
ou algo parecido.innerHTML
), ele é gerado novamente a partir da árvore de elementos. Portanto, o Chrome não está ajustando o HTML, mas criando uma árvore válida a partir do HTML original e gerando um novo HTML a partir dessa árvore.O segundo. O primeiro é inválido.
Um navegador irá lidar com isso da seguinte maneira:
fonte
Vá aqui http://validator.w3.org/ envie seu arquivo html e ele informará o que é válido e o que não é.
fonte
na verdade, você só deve colocar elementos in-line dentro do
p
, para que no seu casool
seja melhor forafonte
Porque ambos
<p>
e<ol>
são elemento renderizado como bloco.fonte