【実務・中級編】インライン要素のネストルールとフレージングコンテンツ – HTML実践ガイド

HTMLの「インライン」という幻想を捨てろ:フレージングコンテンツとネストの深淵

フロントエンド開発の現場で、ふとした瞬間に「これ、HTMLの仕様的に正しいんだっけ?」と手が止まること、ありますよね。特に、``タグの中にまた``を入れてしまったり、``の中に無造作にブロックレベル要素を突っ込んだりして、ブラウザのデベロッパーツールでDOMの壊れ方を見て青ざめる……というのは、誰もが通る道です。

今日は、かつての「インライン要素」という概念を捨て、「フレージングコンテンツ(Phrasing content)」という現代的な仕様の正体を暴いていきましょう。

1. なぜ「インライン要素」という呼び方を卒業すべきなのか

HTML4.01世代のエンジニアなら馴染み深い「インライン要素」と「ブロックレベル要素」という分類。しかし、HTML5以降、仕様書からその言葉は消え去りました。代わりに登場したのが「カテゴリー」という概念です。

中でも、今回フォーカスする「フレージングコンテンツ」は、テキストや、そのテキストを装飾・マークアップするための要素(``, ``, ``, ``, ``, `

重要なのは、「フレージングコンテンツは、他のフレージングコンテンツを内包できる」という原則です。しかし、そこには「これだけはやってはいけない」という残酷なルールがいくつか存在します。

2. ブラウザが裏側でやっている「DOMの修復」という名の悪夢

よくある間違いが、``タグの中にインタラクティブな要素(もう一つの``や`

コメント

タイトルとURLをコピーしました