CSS3 calc()ファンクションを利用すると、CSSのサイズ指定に計算式が使えます。Firefoxは早くからベンダープレフィックス付きで先行実装していましたが、現在はその他のモダンブラウザもほぼ対応しているようです。

横サイズ500pxの親要素(グレー部分)の中に、サンプル1(ピンク部分)をwidth: 100%として入れています。サンプル2(ピンク部分)は、calcを使って、100%から100px減算を指定しています。width: 400pxの比較用(黄色部分)と同じ幅になっていれば、calcが効いています。

.box2 { width: calc(100% - 100px) ;}

サンプル3(ピンク部分)は、100%に50pxを加算しているため、親要素から飛び出します。

.box2 { width: calc(100% + 50px) ;}

サンプル画像01は、width:100%に0.5emの幅のborder(グリーン部分)を指定いるため、border幅の0.5emの左右をあわせて1em分飛び出しています。

#testwrap img	{ width: 100%; border: .5em solid #77ffaa;}

サンプル画像02は、サンプル画像01と同様ですが、calcを使って、100%から飛び出す0.5em*2分を減算して、親要素の中に納めています。

#testwrap img.fix01	{ width: calc(100% - .5em*2); border: .5em solid #77ffaa;}

親要素 width: 500px

サンプル1 width: 100%

サンプル2 width: calc(100% - 100px)

比較用・width: 400px

サンプル3 width: calc(100% + 50px)

戻るボタン