問題
解決策
border、paddingを内包する。
デザインの関係上、borderやpaddingをwidth、heightに含ませないと難しいレイアウトの場合の対策として、「box-sizing」をご紹介します。
まず、HTMLの構築を行います。
便宜上、クラス「boxsizing-box」を用意します。
<div class="boxsizing-box">
<p>border、paddingが内包されます。</p>
</div>
次にCSSの構築を行います。
クラス「boxsizing-box」に「box-sizing: border-box;」を設定します。
「box-sizing」の設定一覧
content-box | borderとpaddingを幅(width)と高さ(height)の中に含めない(※初期値) |
---|---|
border-box | borderとpaddingを幅(width)と高さ(height)の中に含める |
inherit | 親要素の値を継承する |
.boxsizing-box{ width: 100%; padding: 20px; border: 10px solid #F15A24; background-color: #FCECE8; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
DEMOはこちら
border、paddingが内包されます。
参考ページ
【box-sizing-CSS3リファレンス】
http://www.htmq.com/css3/box-sizing.shtml
コメント