転載元: Wenshuo.com http://www.uedsc.com/Discussion-margin-and-padding-values.html
Margin と Padding は、Web デザインでよく使用される CSS スタイルで、それぞれスペースを表します。 . とパディング、一方はボックスの外側で動作し、もう一方はボックスの内側で動作します。デフォルトでは、これらの属性の値は、Web 開発の流体レイアウトまたはレスポンシブ レイアウトの領域内で計算されます。はよく使用され、Padding はパーセンテージに設定されます。このパーセンテージは何で、どのように計算されるのでしょうか?
HTML コード
<div class="demo1"> <div>这个div设置:margin:10% 5%</div></div>
.demo1{ height:500px; width:980px; margin:0 auto; background:#EEE; overflow:hidden;}.demo1 div{margin:10% 5%; background:#666;}
ここにも小さなハックがあります。つまり、demo1 ボックスはボディの隣にありません。つまり、レイアウトは固定されず、ボディ要素の上に空白スペースがあります。 space は .demo1 div 要素のマージンと同じです。 -top、demo1、および .demo1 div 要素はすべて上に配置されます。この問題を解決するには、demo1 要素に overflow:hidden を設定するだけです。 。
これまでの理解に基づくと、.demo1 div のマージンは 50px 49px 50px 49px であるはずですが、実行後にボックス モデル図を見ると、98px 49px 98px 49px になっていることがわかりました。の上?
この 98 ピクセルは実際には幅の 10% に設定されています。信じられない場合は、TOP を 10% に設定する必要があります。このサンプル ページをクリックして効果を確認できます。
概要
これは、デフォルトのwriting-mode: 水平-tb; および方向: ltr; でのみ発生します。
高さではなく幅を基準として選択する必要があるのはなぜですか?
これは実際には CSS の設計意図により大きく依存します。CSS の基本要件は植字であり、通常、私たちが目にする横書きテキストには一定の横幅があります (幅の明示的な定義がない場合や、強制的に 1 行を表示すると、水平方向の拡張ではなく境界の折り返しが発生します)、垂直方向は無限に拡張できます。ただし、書き込みモードが縦長の場合、基準は幅ではなく高さになります。詳細情報