要素のサイズの算出方法を指定する、box-sizingを使ってみます。
対応ブラウザ
box-sizingが対応しているブラウザはこちら。
モダンブラウザでは全て対応していて、IEも8から対応しています。
サンプルコード
HTML
<div id="contents"> <div id="content-box" class="box">content-box</div> <div id="border-box" class="box">border-box</div> </div>
CSS
#contents {
width: 500px;
height: 100%;
border-left: #000000 1px solid;
border-right: #000000 1px solid;
margin: 0 auto;
}
#contents .box {
width: 100%;
border: #000000 20px solid;
padding: 20px;
margin-bottom: 20px;
}
#content-box {
box-sizing: content-box;
background: red;
}
#border-box {
box-sizing: border-box;
background: blue;
}
box-sizingのデモページ
レスポンシブサイトで幅を%指定、paddingをpx指定する時などに使うと便利です。
| box-sizing: content-box; | paddingとborderをwidthとheightに含めない。(初期値) |
|---|---|
| box-sizing: border-box; | paddingとborderをwidthとheightに含める。 |
【参考サイト】

コメントが承認されるまで時間がかかります。