css设置多列等高布局

1
2
3
4
5
6
7
<div class="layout">
<div class="box">
<div>BOX FIRST</div>
<div>BOX SECOND</div>
<div>BOX THIRD</div>
</div>
</div>

等高布局 flex

技术点:弹性盒子布局 flex,默认值就是自带等高布局的特点。
弊端:低版本 ie 浏览器不兼容

定义 flex 布局的时候,有一些默认值。

flex-direction 属性定义主轴的方向。默认值为 row,一般是水平显示。flex 容器的主轴被定义为与文本方向相同。 主轴起点和主轴终点与内容方向相同。

align-item 属性定义 flex 子项在 flex 容器的当前行的侧轴(纵轴 或者说 交叉轴)方向上的对齐方式。默认值为 stretch,元素被拉伸以适应容器。

1
2
3
4
5
.box {
display: flex;
justify-content: flex-start;
align-items: flex-start;
}

等高布局 table-cell

技术点:table 布局天然就具有等高的特性。

display 设置为 table-cell,则此元素会作为一个表格单元格显示。类似于使用标签<td>或者<th>

1
2
3
4
5
6
7
8
9
10
.layout {
display: table;
}
.box {
display: table-row;
}
.box > div {
width: 33%;
display: table-cell;
}