「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CSS でコンテナの幅に基づいてマージントップのパーセンテージが計算されるのはなぜですか?

CSS でコンテナの幅に基づいてマージントップのパーセンテージが計算されるのはなぜですか?

2024 年 11 月 5 日に公開
ブラウズ:386

Why is Margin-Top Percentage Calculated Based on Container Width in CSS?

CSS でのマージントップ パーセンテージの計算

要素にマージントップ パーセンテージを適用する場合、その計算方法を理解することが重要です。実行されました。一般的な考えに反して、マージントップのパーセンテージは、ブロックを含むブロックの高さではなく、幅に基づいて決定されます。

W3C 仕様の説明:

W3C 仕様では、「パーセンテージは、生成されたボックスの包含ブロックの幅を基準にして計算されます。」このルールは、「margin-top」と「margin-bottom」の両方に適用されます。

コンテナの幅に基づいて垂直方向のマージンを設定する理由:

  1. 水平方向と垂直方向の一貫性: 'margin' 短縮表現プロパティで定義されているように、ブロックの 4 辺すべてのマージンのパーセンテージは等しいままである必要があります。コンテナの幅に基づいて垂直方向のマージンを設定すると、一貫したマージン サイズが維持されます。
  2. 循環依存性の回避: ブロックの高さの計算は、多くの場合、上下のマージンを理解することに依存します。ただし、これらのマージンがブロックの高さに依存する場合、レイアウト計算中に循環依存が発生します。コンテナーの幅に基づいて垂直方向のマージンを設定すると、この問題は解決されます。

例:

次のコードを考えてみましょう:

.container {
  width: 500px;
  height: 100px;
}

p {
  margin-top: 50%;
}

「p」要素の 50% の「margin-top」は、「.container」の幅 (500px) に基づいて計算されます。したがって、適用される実際のマージントップは 250 ピクセル (500 ピクセルの 50%) になります。これは、100 ピクセル (200 ピクセルの 50%、「.container」の高さ) であるという一般的な想定とは異なります。

結論:

マージンの方法を理解することで、 - 上位パーセンテージが計算されるため、要素の位置を効果的に制御し、予期しないレイアウトの問題を回避できます。垂直方向のマージンは、一貫したサイズを維持し、CSS レイアウトの循環依存関係を防ぐために、含まれるブロックの幅に基づいていることに注意してください。

最新のチュートリアル もっと>

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

Copyright© 2022 湘ICP备2022001581号-3