According to HTML5, the content modelcontent model of div
div
elements is flow contentflow content
Most elements that are used in the body of documents and applications are categorized as flow content.
That includes p
p
elements, which can only be usedcan only be used where flow contentflow content is expected.
Therefore, div
elements can contain p
elements.
However, the content modelcontent model of p
p
elements is Phrasing contentPhrasing content
Phrasing content is the text of the document, as well as elements that mark up that text at the intra-paragraph level. Runs of phrasing contentphrasing content form paragraphsparagraphs.
That doesn't include div
div
elements, which can only be usedcan only be used where flow contentflow content is expected.
Therefore, p
elements can't contain div
elements.
Since the end tagend tag of p
p
elements can be omitted when the p
element is immediately followed by a div
element (among others), the following
<p>
<div>some words</div>
</p>
is parsed as
<p></p>
<div>some words</div>
</p>
and the last </p>
is an error.