现代 CSS 已经提供了强大而直观的布局方案。本文将梳理 Flexbox、CSS Grid 和最新的 Container Queries。
Flexbox
Flexbox 适合一维布局。它沿主轴排列子元素,并提供灵活的对齐和分配空间的能力。
.nav-list {
display: flex;
align-items: center;
gap: 8px;
}CSS Grid
Grid 是真正的二维布局系统,同时控制行和列:
.post-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 24px;
}Container Queries
Container Queries 是响应式设计的下一阶段,它允许基于容器宽度(而非视口宽度)来调整样式:
@container (min-width: 400px) {
.card {
flex-direction: row;
}
}实践建议
- 一维布局用 Flexbox
- 二维布局用 Grid
- 组件级响应式用 Container Queries
- 始终使用
gap而非margin来设置间距
掌握这些现代 CSS 技术,你将能写出更简洁、更可维护的布局代码。