width や height で大きさを指定したboxに
marginやborder、paddingを指定した時、
レイアウトが崩れたという経験はありませんか?
![スクリーンショット 2017-02-12 23.54.21.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F159314%2Fecac40f8-0574-642a-2055-2b490b8c7ae2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4e41cb84442227efc25450f0ef676a08)
sample.css
width: 300px;
height: 100px;
border: 10px;
そんな時は、ボックスサイズの算出方法を見直してみるといいかもしれません。
具体的にどこを見るの??
box-sizingプロパティ
を指定することで
ボックスサイズ(width, height) の算出方法を指定することができます。
初期値ではbox-sizing: content-box;
となっています。
sample.css
width: 300px;
height: 100px;
box-sizing: content-box;
このcontent-boxとは、パディングとボーダーを幅と高さに含めない状態
を指します。
言い換えると、heightやwidthの大きさとは別で、
marginやborder、paddingの大きさが含まれている状態です。
んじゃ、どうすればいいの??
box-sizingをborder-box
と指定してあげましょう。
もうお分かりかもですが、
border-boxはパディングとボーダーを幅と高さに含める状態
を指します。
#まとめ
content-box:パディングとボーダーを幅と高さに含めない(初期値)
border-box :パディングとボーダーを幅と高さに含める