技术 #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;
}
请注意,最后一种技术会折叠两个元素之间的 4px 间距,而前两种技术会导致 8px 出现在两个项目之间,4px 出现在边缘。