Ответ 1
Техника № 1 - Современный CSS3 calc()
Используя 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://jsfiddle.net/NTE2Q/1/
Подробнее о том, какие браузеры и версии поддерживают это, см. 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;
}
Демо: http://jsfiddle.net/NTE2Q/2/
Техника № 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;
}
Демо: http://jsfiddle.net/NTE2Q/4/
Обратите внимание, что этот последний метод разрушает расстояние между двумя элементами, равное 4px, в то время как первые два метода вызывают 8px между двумя элементами и 4px по краям.