Skip to content

栅格盒子布局

元信息

  • 目标:掌握原生 CSS Grid 的二维网格布局——用 grid-template-columns/rows 自定义坐标轴线,并与浮动、Flex 对比各自的功能定位与适用场景
  • 关键概念:CSS Grid、display:grid、grid-template-columns、二维网格
  • 关联阶段:cp2
  • 常见误区:以为 Grid 与 Flex 是竞争替代关系(Flex 是一维轴线布局、Grid 是二维网格布局,各有适用场景);以为 Grid 兼容性已无顾虑(较新特性仍需关注 caniuse)

原生CSS Grid

在最新的Web标准中,加入了原生的CSS Gird 盒子模型, 从而支持盒子内部采用栅格方式进行布局,即自定义多条坐标轴线,可以在最新的浏览器里体验:

栅格盒子布局-0

CSS Grid示例

<!DOCTYPE html>
<html>
<head>
  <title>Parcel Sandbox</title>
  <meta charset="UTF-8" />
  <link rel="stylesheet" href="/styles.css" />
</head>
<body>
  <h1>Hello world</h1>
</body>
</html>

可在 https://caniuse.com 搜索 'css grid' 可以查看各浏览器的实现情况

各种布局技术的简单比较

特征浮动FlexCSS Grid
功能基于定位基于十字轴线基于二维网格线
兼容性最好较好,尤其移动设备较差
复杂性基于各种技巧简单易用较复杂

CSS Grid 参考