我正在创建一个 5 列布局,其中 div 相互重叠,以在它们之间留出 5px 的空间。
我正在使用边框框来解决烦人的填充问题。
问题:列根本不适合宽度,因为我正在使用边距来移动 div 的“hacks”。
CSS
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
text-align: center;
}
.grid:after {
content: "";
display: table;
clear: both;
}
.col-1-5,
.col-2-5,
.col-3-5,
.col-4-5,
.col-5-5 {
float: left;
margin-left: -5px;
}
.col-first { clear: left; margin-left: 0; }
.col-1-5 { width: 240px; }
.col-2-5 { width: 480px; }
.col-3-5 { width: 720px; }
.col-4-5 { width: 960px; }
.col-5-5 { width: 1200px; }
.module {
background: #f1ebe5;
padding: 5px;
}
.module-content {
background: #fff;
height: 320px;
}
.col-3-5 .module-content { /* Middle col has main content, thus higher */
height: 400px;
}
HTML
<div class="grid">
<div class="col-1-5 col-first module">
<div class="module-content">
240px x 320px
</div>
</div>
<div class="col-3-5 module">
<div class="module-content">
720px x 400px
</div>
</div>
<div class="col-1-5 module">
<div class="module-content">
240px x 320px
</div>
</div>
</div>
删除
margin-left: -5px;
使整个东西适合 1200 像素的宽度,但列之间的“边界”为 10 像素,而不是 5 像素。
我确信有一个非常简单的解决方案,我已经尝试过的事情之一是:
- 第一列或最后一列的自定义 padding-right 以修复缺少的宽度。
但是由于内容给列的高度不同,这是行不通的。
最终结果注定是这样的: