在网页开发中,我们常常需要将多个并排显示的盒子设置为高度相等,即使它们内部的内容多少不一。这种需求在卡片列表、后台管理布局中非常普遍。下面介绍几种主流的css实现方式。
一、使用表格布局实现
表格单元格天然具有等高的特性,我们可以将容器显示为表格,子项显示为单元格。
.container {
display: table;
width: 100%;
}
.box {
display: table-cell;
border: 1px solid #ccc;
padding: 10px;
}
这种写法兼容性好,但不太灵活,且语义上并非真正的表格数据时不推荐长期使用。
二、使用flexbox弹性布局
flexbox是现代布局首选,默认情况下,flex容器内的项目会拉伸到等高。
.container {
display: flex;
}
.box {
flex: 1;
border: 1px solid #ccc;
padding: 10px;
}
上述代码中,display:flex让子项默认align-items:stretch,从而自动等高。若需单独控制,可设置align-items属性。
三、使用grid网格布局
grid也能轻松实现等高,且适合多列复杂结构。
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.box {
border: 1px solid #ccc;
padding: 10px;
}
方案对比
| 方案 | 兼容性 | 灵活性 |
|---|---|---|
| table | 非常好 | 低 |
| flexbox | 较好 | 高 |
| grid | 现代浏览器 | 非常高 |
小结
通过以上方法,我们可以根据实际项目需求选择合适的css等高盒子布局方案。日常开发中flexbox基本能覆盖大多数场景。