CSS 现代布局

Grid 二维布局

.layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem;
}

一行就能实现「自适应列数 + 最小宽度兜底」。

Container Query

组件不再依赖视窗宽度,而是依赖父容器宽度:

.card { container-type: inline-size; }
@container (min-width: 480px) {
  .card-title { font-size: 1.5rem; }
}

subgrid

子网格继承父网格的列定义,让卡片内的标题、正文、按钮在网格里横向对齐。

实战建议

  1. 整体框架用 Grid
  2. 行内元素用 Flex
  3. 组件用 Container Query 做内部响应式
  4. 兼容性兜底用 @supports 渐进增强