この例max-height
では、ボックスに が適用されていないのはなぜですか? ボーダーボックス モードは無視されているようですが (Chrome でテスト済み)、直感に反するようです。
1 に答える
box-sizing
プロパティは無視されません。値は次のようborder-box
に動作します。
パディングは上下で 100px に設定されているため、要素の 200px がheight
パディングによって消費されます。
200pxの a を指定するheight
と、200 - 200 が 0 であるため、計算された高さは 0 になります。
height
201pxを指定すると、計算される高さは 1 になります。
box-sizing
ドキュメントから:
コンテンツの幅と高さは、指定された 'width' と 'height' プロパティからそれぞれの辺のパディング幅を差し引いて計算されます。コンテンツの幅と高さを負にすることはできないため、この計算の下限は 0 です。
これは、パディングの代わりにボーダーを使用して簡単に実証できます。
#test {
background: #000;
border-width: 100px 0;
border-style: solid;
border-color: red;
height: 200px;
box-sizing: border-box;
}
ここで、要素には黒い背景と赤い境界線がありますが、その高さが上下の境界線の幅の合計に等しいため、要素は 0px で計算されます。
ご覧のとおり、箱は完全に赤いです。要素には高さがないため、黒い背景は表示されません。height
要素をに調整すると、次のよう250px
になります。
ここで計算された要素の高さは 50px なので、50px の背景が表示されます。残りの 200px は境界線によって消費されます。