Soweit ich weiß, ist das richtig:
<div>
<p>some words</p>
</div>
Das ist aber falsch:
<p>
<div>some words</div>
</p>
Der erste kann den W3C-Validator (XHTML 1.0) bestehen, der zweite nicht. Ich weiß, dass niemand Code wie den zweiten schreiben wird. Ich will nur wissen warum.
Und was ist mit der Containment-Beziehung anderer Tags?
p
ist ein Element auf Blockebene, das nichts damit zu tun hat. div
ist auch einer und erlaubt andere Blöcke.
<p>
es sich um ein Element auf Blockebene handelt und (soll) zum Anzeigen von Text verwendet wird, werden keine anderen Elemente auf Blockebene darin zugelassen, sondern nur Inline-Elemente wie<span>
und<strong>
.