などのインライン要素内にブロック レベル要素をp
直接b
入れ子にすることは無効です。
display: inline-block
ただし、またはisなどの css を使用position: absolute
すると、インライン コンテキスト内にブロック レベルのコンテンツを含めることが概念的に適切な場合があります。
ブラウザーはインライン要素でこのようなブロック レベルの要素を広く受け入れますが、状況によっては、無効な構造が実際の問題を引き起こすことがあります。
<p><span><p></p></span></p>
上記の例は、ネストされた 3 つの要素として解析されません。CSS に関係なく、代わりに最も内側<p>
が外側を暗黙的に閉じます。その jsbin デモ<p>
を見ることができます。
ブロックレベル要素をインライン要素に有効に配置するために中間要素を使用する方法はありますか?
それが不可能な場合、ほとんどの場合 (できればトリッキーな<p>
タグについても) 無効だが機能する回避策はありますか?
明確にするために、私はドキュメント構造への侵襲的な変更を必要としない一般的なソリューションを探しています (つまり、「span
どこでも、すべてに使用する」ことは魅力的なソリューションではありません)。未知の (動的に生成された) ドキュメント フラグメントを潜在的にブロック レベルのコンテンツに埋め込みたい - ブロック レベルの要素を除外するようにフラグメントを修正することは実行不可能です。
関連:(主に直接ネストの有効性に対処する)