web-dev-qa-db-ja.com

スパンタグにはHTML5にどの要素を含めることができますか?

だから、私はPHPほとんどの私のキャリアでCLIまたはCronの開発者であり、今では学校でUIの仕事が好きではない理由を学んでいます。)ここでHTML5検証を扱っています。好奇心のための質問への答えを見つけることができません。ホームページでW3C HTML5検証を実行しましたが、<span>内にあるdivでエラーが発生しましたが、これは許可されていません。スパン内のすべての<div><p>に変更しようとしましたが、ほぼ同じエラーを受け取りました。 http://www.w3schools.com/html5/tag_span.asp は、<span>内で許可される要素を明示的に指定せず、バリデーターからのエラーも表示しません。

行85、列69:要素pは、このコンテキストでは要素スパンの子として許可されていません。 (このサブツリーからのさらなるエラーの抑制。)

2つの質問:

1)<span>内で許可されている場合、どの要素ですか?

2)別の要素内で許可される要素についてはどこで参照できますか?グーグルで検索しましたが、「W3C」スタンプのあるものは何も表示されません。

32
Ghost

インライン要素にはインライン要素のみを含めることができます。 spanはインライン要素です。そのため、aimgsupなどのタグはスパン内に配置できますが、divpなどのブロックレベル要素は使用できません。

[〜#〜] update [〜#〜]

実際には、デフォルトでインライン表示になっているさまざまな要素の動作は異なります。一部の「インライン」要素はブロック要素(aなど)を許可しますが、許可しないものもあります(spanなど)。

HTMLタグに含まれるものに興味がある場合、最も公式なソースはHTML要素に関するWHATWGページです。 HTML要素をチェックして、許可されているコンテンツを確認できます(各要素の「コンテンツモデル」を参照)。

http://www.whatwg.org/specs/web-apps/current-work/multipage/#auto-toc-4

Spanタグの定義は次のとおりです。これは、「フレージング」コンテンツのみが許可されることを示しています。

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-span-element

51
jackwanders