1. ホーム
  2. html

[解決済み] Why can't the <p> tag contain a <div> tag inside it?

2022-04-20 08:57:05

Question

As far as I know, this is right:

<div>
  <p>some words</p>
</div>

But this is wrong:

<p>
  <div>some words</div>
</p>

The first one can pass the W3C validator (XHTML 1.0), but the second can't. I know that nobody will write code like the second one. I just want know why.

And what about other tags' containment relationship?

How to solved?

An authoritative place to look for allowed containment relations is the HTML spec. See, for example, http://www.w3.org/TR/html4/sgml/dtd.html . どの要素がブロック要素で、どの要素がインラインであるかが指定されています。これらのリストについては、"HTMLコンテンツモデル"と記されたセクションを検索してください。

P要素については、以下のように指定されており、P要素がインライン要素のみを含むことができることを表しています。

<!ELEMENT P - O (%inline;)*            -- paragraph -->

と一致します。 http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 は、P要素にブロックレベル要素(P自身を含む)を含めることはできない、と言っています。