39

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

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

2つの質問:

1)もしあれば、どの要素が許可されてい<span>ますか?

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

4

1 に答える 1

63

インライン要素内に含めることができるのはインライン要素のみです。spanインライン要素です。aしたがって、img、 、 などのタグsupはスパン内に入れることができますが、divやのようなブロック レベルの要素pはできません。

アップデート

実際には、デフォルトでインライン表示になっているさまざまな要素は、異なる動作をします。一部の「インライン」要素はブロック要素を許可する場合があります (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

于 2012-07-03T15:56:15.603 に答える