どうしてないのbox-sizing: margin-box;
?通常box-sizing: border-box;
、スタイルシートに入れるときは、前者を意味します。
例:
2列のページレイアウトがあるとします。両方の列の幅は50%ですが、ガター(中央にギャップ)がないため、見栄えがよくありません。以下はCSSです:
.col2 {
width: 50%;
float: left;
}
ガターを適用するには、2つの列の最初の列に右マージンを設定するだけでよいと考えるかもしれません。このようなもの:
.col2:first-child {
margin-right: 24px;
}
ただし、次のことが当てはまるため、2番目の列が新しい行に折り返されます。
50% + 50% + 24px > 100%
box-sizing: margin-box;
要素の計算された幅にマージンを含めることにより、この問題を解決します。これは、と同じくらい有用ではないとしても、非常に有用だと思いますbox-sizing: border-box;
。
border: xxx solid transparent;
境界線はに含まれてborder-box
いるため、特定の状況では、を使用してこれを回避できます。ただし、これにより、などの他のいくつかのものが壊れbox-shadow
ます。
box-sizing: margin-box
ます。マージンの縮小では機能しないため、答えはありません。
box-sizing: margin-box;
?」水平マージンが崩壊しない間、そのような命題は垂直マージン崩壊を深刻に妨げるでしょう。とにかく、標準化のために何かを提案したい場合、スタックオーバーフローは適切な場所ではありません。メーリングリストを試してください。