「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > `display:inline` 親は `display:block` 子に対してどのように動作しますか?また、そのコンテンツ フロー、境界線の処理、およびテキストの折り返しにはどのような影響がありますか?

`display:inline` 親は `display:block` 子に対してどのように動作しますか?また、そのコンテンツ フロー、境界線の処理、およびテキストの折り返しにはどのような影響がありますか?

2024 年 10 月 31 日公開
ブラウズ:498

How does a `display:inline` parent behave with a `display:block` child, and what are the implications for its content flow, border treatment, and text wrapping?

Display: Block Inside Display: Inline

質問では、display:inline 親内の display:block 要素のシナリオが提示されていますが、基本的な質問は、このようなシナリオにおけるこれら 2 つの表示値の違いに関するものです。

CSS 2.1 仕様によれば、インライン要素にブロック要素が含まれる場合、インライン ボックスはブロックの周囲で分割されます。匿名ブロック ボックスは、ブロックの前後のインライン コンテンツの周囲に作成され、ブロックはこれらの匿名ボックスの兄弟になります。

これにより、表示として定義されているにもかかわらず、親要素が次のような構造になります。 inline では、display:block 子の存在により動作が異なります。親要素は事実上、匿名ブロック ボックスを含むブロック ボックスになります。

表示: インラインと表示: ブロック親の違い

構造は類似していますが、微妙な違いがあります。このシナリオにおける display:inline と display:block の親要素の違い:

  • コンテンツ フロー: インライン要素はテキストとともに水平方向に流れますが、ブロック要素は垂直方向に流れます。インライン親の周囲に作成された匿名ブロック ボックスにより、子要素を垂直に積み重ねることができ、ブロックの動作をシミュレートできます。
  • 匿名ブロック ボックス生成: Display:inline により、匿名ブロック ボックスが生成されます。ブロックの子に隣接するインライン コンテンツ。これは、親要素全体がブロック ボックスになる、display:block 親の場合には当てはまりません。
  • 境界線の処理: CSS 2.1 仕様では、境界線などの特定のプロパティが、匿名のブロック ボックスを生成する要素には引き続き適用されます。したがって、境界線を持つ display:inline 親では、匿名ブロック ボックスの周囲に境界線が描画され、改行部分に開いた境界線が作成されます。対照的に、境界線を持つ display:block 親は、ブロック ボックス全体の周りに閉じた境界線を持ちます。
  • テキストの折り返し: インライン要素は自然にテキストを周囲に折り込みます。このシナリオでは、インライン コンテンツを囲む匿名ブロック ボックスにより、親が display:block 要素であるかのように、テキストがブロックの子の周囲に折り返されるのを防ぎます。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3