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?
pist ein Element auf Blockebene, das nichts damit zu tun hat. divist 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>.