CSSボックスのサイズ設定プロパティのしくみ
CSSのbox-sizing
の使用方法を学ぶ ブラウザがHTML要素の幅と高さを計算およびレンダリングする方法を制御するプロパティ。
ボックスのサイズ設定(コンテンツボックスとボーダーボックス)
CSSのbox-sizing
プロパティには2つの値があります:
コンテンツボックス
(デフォルト)-
border-box
ボックスサイズの値はどちらも、ブラウザがHTML要素のサイズを計算してレンダリングする方法に影響しますが、共通しているのはそれだけです。
content-box
デフォルトでは、すべてのHTML要素は content-box
を使用します 値:
box-sizing: content-box;
これは、次のスタイルの要素がある場合を意味します。
div {
width: 100px;
height: 100px;
padding: 16px;
border: 1px solid;
}
次に、その要素の幅と高さは、100pxではなく134pxとして計算されます。 CSSスタイルシートで指定したとおり。結果:
サイズを自分で確認したい場合は、ブラウザを有効にしてください Element Inspector このコマンドで:
- Mac:Cmd + Shift + C
- Windows:Ctrl + Shift + C
次に、上の要素の上にマウスを移動して、そのサイズを確認します。
これは、 content-box
が原因で発生します 幅/高さの値を境界線( 1px
)と一緒に追加します 両側)とパディング( 16px
両側)の値、およびそれらの値の合計で要素のサイズをレンダリングします:
- 要素の幅:
1 + 16 + 100 + 16 + 1
=134ピクセル。 - 要素の高さ:
1 + 16 + 100 + 16 + 1
=134ピクセル。
content-box
からのこのデフォルトの動作 作業するのは非常に面倒ですが、幸いなことに、変更するのは簡単です!
デフォルトのbox-sizing:content-box
宣言は、すべてのWebブラウザに組み込まれているユーザーエージェントスタイルシートから継承されます。
救助のためのボーダーボックス
content-box
は簡単に上書きできます border-box
の値 値。これは、ブラウザが要素のサイズを計算する方法とは逆の効果があります。
box-sizing: border-box;
box-sizing
を設定する border-box
へのプロパティ ブラウザは、 height
を使用して要素に指定した正確な幅と高さで要素をレンダリングします。 およびwidth
プロパティ:
div {
width: 100px;
height: 100px;
padding: 16px;
border: 1px solid;
box-sizing: border-box;
}
結果:
border-box
値はブラウザを含むにします 要素の合計の幅と高さを計算するときに、指定されたパディングと境界線の値を(追加しないで)。
border-box
を使用 、どのパディング
に関係なく またはborder
要素に追加する値。要素の合計サイズは、 height
で指定した値になります。 およびwidth
プロパティ。
目安として、並べて比較します。
上記の両方の要素の幅と高さは100ピクセルに指定されていますが、 border-box
を使用しているため、2番目の要素のみがこれらの指定された値を尊重します。 。
content-box
vs border-box
要約:
コンテンツボックス
パディングとボーダーの値を要素の高さ/幅の値と組み合わせて、合計をレンダリングします。-
border-box
要素の幅/高さの一部として、パディングと境界線の値が含まれます。
すべてにborder-boxを使用する
これで、 border-box
CSSで指定した実際のサイズでブラウザにHTML要素をレンダリングさせます。しかし、どのように border-box
を適用しますか すべてのHTML要素に?
一番上に次のCSSルールセットを追加するのと同じくらい簡単です。 スタイルシートの:
*, *:before, *:after {
box-sizing: border-box;
}
上記のコードは、CSSのユニバーサルセレクター *
を使用しています border-box
を適用するには box-sizing
の値 プロパティ:
- すべての通常の要素セレクター(
div
、p
、ボタンコード> など)
- すべての
:before
および:after
疑似セレクター
border-box
を使用する すべてのHTML要素で、ブラウザが要素のサイズをどのようにレンダリングするかを心配する必要がなくなりました。常に自分で指定した高さと幅になります。
-
CSSのborder-colorプロパティ
CSSのborder-colorプロパティは、要素の境界線の色を指定するために使用されます。また、border-top-color、border-right-color、border-left-color、border-right-colorプロパティを使用して、個々の辺の色を設定することもできます。 構文 CSSborder-colorプロパティの構文は次のとおりです- Selector { border-color: /*value*/ } 次の例は、CSSのborder-colorプロパティ-を示しています。 例 <!DOCTYPE html>
-
CSSのborder-styleプロパティ
CSS border-styleプロパティは、要素の境界線スタイルを指定するために使用されます。また、border-topスタイル、border-rightスタイル、border-leftスタイル、border-rightスタイルのプロパティを使用して、個々の辺の境界線スタイルを定義することもできます。 構文 CSSボーダープロパティの構文は次のとおりです- Selector { border: /*value*/ } 次の例は、CSSボーダースタイルのプロパティ-を示しています。 例 <!DOCTYPE html> <html> <