結論
box-sizing: border-box;
を使います。
解説
例えば、以下のように指定すると、.class2
では中の要素の幅が50%
になるように表示されるので、border
で囲われる範囲はpadding
の分だけ大きくなってしまいます。言い換えると、1rem+50%+1rem
の幅になってしまいます。
style.css
.class1 {
width: 50%;
margin: 0;
padding: 0;
border: solid;
}
.class2 {
width: 50%;
margin: 0;
padding: 1rem;
border: solid;
}
そこで、以下のように、box-sizing: border-box;
を追加することで、要素の幅とpadding
を足したものがwidth: 50%
になるので、padding
の異なる要素同士で、幅をそろえることができます。
style.css
.class1 {
width: 50%;
margin: 0;
padding: 0;
border: solid;
}
.class2 {
width: 50%;
margin: 0;
padding: 1rem;
border: solid;
box-sizing: border-box;
}