17370845950

css grid布局如何设置行列
通过grid-template-columns和grid-template-rows定义行列,可创建灵活的二维网格布局,结合fr、px、repeat()等单位与函数控制尺寸,配合gap设置间距,实现清晰响应式结构。

在 CSS Grid 布局中,设置行和列主要通过 grid-template-columnsgrid-template-rows 属性来实现。它们定义了网格容器中每一列的宽度和每一行的高度。

定义列(grid-template-columns)

使用 grid-template-columns 可以指定每一列的宽度。可以使用固定单位(如 px)、相对单位(如 fr、%)或 auto。

常见写法示例:
  • grid-template-columns: 100px 200px 1fr; —— 创建三列,前两列固定宽度,第三列占据剩余空间
  • grid-template-columns: 1fr 1fr 1fr; —— 三等分容器宽度
  • grid-template-columns: repeat(3, 1fr); —— 使用 repeat() 函数简化写法
  • grid-template-columns: minmax(100px, 1fr) 2fr; —— 第一列最小 100px,最大为 1fr,第二列为 2fr

定义行(grid-template-rows)

grid-template-rows 控制每行的高度,用法与列类似。

示例:
  • grid-template-rows: 50px 100px; —— 两行,高度分别为 50px 和 100px
  • grid-template-rows: repeat(2, auto); —— 两行,高度由内容决定
  • grid-template-rows: 100px 1fr; —— 第一行固定,第二行占剩余高度

结合使用行列定义

将两者组合,即可创建二维网格结构。

例如:
.container {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-template-rows: 60px 1fr 50px;
  gap: 10px; /* 行列间距 */
}

这会创建一个 2 列 3 行的网格:第一列占 1 份,第二列占 2 份;第一行高 60px,第二行占剩余高度,第三行高 50px。

基本上就这些。掌握 grid-template-columnsgrid-template-rows 就能灵活控制网格结构,再配合 gap 设置间距,布局就很清晰了。