我正在寻找一种最简单的方法来实现一种看似简单的布局:
...但实际上涉及很多标准,其中许多涉及非平凡的CSS问题:
此问题的各个要素已在单独的问题中解决(例如vertically aligning floated divs和pixel gaps between responsive percentage-width divs),但我找不到任何组合它们的内容。
最简单意味着:
答案 0 :(得分:1)
这是我能想到的最简单的事情。下面的代码片段。它基本上是一种垂直居中浮动的现有方法,将背景放在中间包装上,并使用外包装上的填充而不是box-sizing: border-box;
的边距设置固定的像素间隙。
overflow: hidden;
.box-outer {
box-sizing: border-box;
float: left;
/* editable */
width: 50%;
height: 110px;
padding: 1px 1px 0px 0px; /* sets gap */
/* Padding does't collapse like margins - 1px all round gives 2px gaps */
}
.box {
width: 100%;
height: 100%;
box-sizing: border-box;
display: table; /* height doesn't fill without display: table */
/* editable: */
background: #99ffff;
padding: 8px;
}
.box-inner {
vertical-align: middle;
display: table-cell;
}
.boxes-container {
padding: 0px 0px 1px 1px; /* opposite of each box's padding */
/* editable: */
background: #ffffff url('http://freedesignfile.com/upload/2012/10/sky_clouds_03.jpg');
}
<div class="boxes-container clearfix">
<h2> Title </h2>
<div class="box-outer">
<div class="box">
<div class="box-inner">
Box content
</div>
</div>
</div>
<div class="box-outer">
<div class="box">
<div class="box-inner">
Box with longer content
</div>
</div>
</div>
<div class="box-outer">
<div class="box">
<div class="box-inner">
Box
</div>
</div>
</div>
<div class="box-outer">
<div class="box">
<div class="box-inner">
Box with significantly longer textual content
</div>
</div>
</div>
<br/>
<p style="text-align: center;"> <--- responsive width ---> </p>
</div>