テクニック #1 - 最新の CSS3calc()
CSS3 のcalc()
lengthを使用して、幅を次のように設定することでこれを行うことができます.element
。
.element {
width: 49%; /* poor approximation for old browsers */
width: calc(50% - 8px); /* standards-based answer for IE9+, FF16+ */
width: -moz-calc(50% - 8px); /* support for FF4 - FF15 */
width: -webkit-calc(50% - 8px); /* support for Chrome19+ and Safari6+ */
}
これをサポートするブラウザーとバージョンの詳細については、http://caniuse.com/calcを参照してください。
テクニック 2 - 昔ながらのラッピング
複数の要素を重ねて計算することができます。この場合、幅 50% で 4px のパディングを持つラッパーで各「要素」をラップします。
<div class='wrap'>
<div class='ele1'>
<div class='element'>HELLO</div>
</div><div class="ele1">
<div class='element'>WORLD</div>
</div>
</div>
.ele1 {
display:inline-block;
width:50%;
padding:4px;
box-sizing:border-box; /* Make sure that 50% includes the padding */
-moz-box-sizing:border-box; /* For Firefox */
-webkit-box-sizing:border-box; /* For old mobile Safari */
}
.element {
background:#009; color:#cef; text-align:center;
display:block;
}
な
テクニック #3 - (CSS) テーブルの使用
ラッパーを「テーブル」として扱い、各要素を同じ行内のセルとして扱うことによって、同じ結果を得ることができます。これにより、要素間の空白は重要ではなくなります:
<div class='wrap'>
<div class='element'>HELLO</div>
<div class='element'>WORLD</div>
</div>
.wrap {
background:red;
width:300px;
display:table;
border-spacing:4px
}
.element {
background:#009; color:#cef; text-align:center;
width:50%;
display:table-cell;
}
この最後の手法は 2 つの要素間の 4 ピクセルの間隔を縮小することに注意してください。一方、最初の 2 つの手法では、2 つのアイテムの間に 8 ピクセル、端に 4 ピクセルが表示されます。