使用float可实现多栏列表布局,通过设置li元素左浮动与宽度形成多栏,配合box-sizing和calc()控制间距,需用伪元素清除浮动防止高度塌陷。
使用 CSS 的 float 属性可以实现多栏列表布局,虽然现代开发更多采用 Flexbox 或 Grid,但在一些简单场景或兼容旧浏览器时,float 仍是一种有效方式。关键在于控制元素的浮动方向和容器的清理。
将列表项设置为浮动,使其并排排列:
CSS 设置每个列表项向左浮动,并指定宽度:
.multi-column {
list-style: none;
padding: 0;
margin: 0;
overflow: hidden; /* 触发 BFC,包含浮动 */
}
.multi-column li {
float: left;
width: 50%; / 两栏布局 /
box-sizing: border-box;
padding: 10px;
}
这样就能实现两栏等宽列表。若要三栏,把 width 改为 33.33% 即可。
父容器如果不设置高度,可能因子元素浮动而“塌陷”,影响后续布局。解决方法有:
.multi-column::after {
content: "";
display: table;
clear: both;
}
为了更美观的多栏效果,注意以下细节:
例如创建带间隙的两栏:
.multi-column li { float: left; width: calc(50% - 10px); margin: 5px; box-sizing: border-box; }
基本上就这些。float 实现多栏列表不复杂但容易忽略清除和盒模型问题。