spanを入れ子にするのは問題ない?入れられる要素は?
HTMLの記述の方法として、「spanタグの入れ子にブロック要素を入れてはいけない」などと言った記述法を耳にしたことはないでしょうか。この記事では実際にspanタグの入れ子に指定はあるのか、何を入れていいのかなどを解説していきます。
spanを入れ子にするのは問題ない?
HTMLコーディングに関して、span
タグを入れ子としてタグの中で使用したり、逆にspan
タグの入れ子には何を入れるのがふさわしいのか等、入れ子に関する議題を何度か見たことがあるのではないでしょうか。
今回の記事ではspan
タグに関する入れ子の問題について解説します。
先に結論
結論から言うと、span
タグはどのタグの入れ子にしても問題ありません。
HTML5からW3C(World Wide Web Consortium )はHTMLタグに、コンテンツモデルと、カテゴリーという概念を追加しました。
これらの考え方についてはこちらの公式で学ぶことをお勧めします。
コンテンツモデルに基づくと、span
タグはフレージングコンテンツといい、div
タグやh1
タグ、p
タグなど、基本的に全てのタグの入れ子にすることができます。
(例外としては、dl
タグなどには入れることができませんが)
spanの中に入れられる要素は?
次はspan
タグの中にタグを入れる場合の解説をします。
HTML4以前では入れ子を考える際には、span
タグなどのインライン要素の中にブロックレベル要素を入れてはいけないというルールがありました。
しかし、現在のHTML5からはそのような問題を気にする必要はなくなりました。
厳密にはspan
タグの中にはフレージングコンテンツを入れることができます。
span
タグに入れていいタグは具体的にいくつか挙げると、span
タグ、br
タグ、img
タグ、a
タグなどです。
