CSS Grid 布局 - 附完整示例

CSS Grid 布局是一个强大的布局系统,它可以让你创建复杂的网页布局,并且代码简洁,灵活性高。它基于行和列的网格系统,将页面区域分割成不同的单元格,并允许你在这些单元格中排列内容。

目录

效果

一、 基本概念

二、创建网格容器

三、 定义网格行和列

四、网格项的布局

五、 网格间距

六、 自适应布局

七、 对齐和分布

八、 完整示例

HTML

CSS

九、总结

欢迎关注VX公众号:前端小知识营地


效果

一、 基本概念

  CSS Grid 布局通过 display: grid; 或 display: inline-grid; 激活。你可以通过行和列定义网格,然后将内容放入这些网格单元格中。

 二、创建网格容器

.container {
  display: grid;
}

  这个样式声明将 .container 元素转换为网格容器。

  三、 定义网格行和列

  通过 grid-template-rows 和 grid-template-columns 来设置网格的行和列。

.container {
  display: grid;
  grid-template-columns: 200px 1fr 2fr; /* 定义3列 */
  grid-template-rows: 100px 200px; /* 定义2行 */
}
  •   grid-template-columns 定义列的宽度,200px 1fr 2fr 表示三列:第一列宽 200px,第二列占剩余空间的 1/3,第三列占剩余空间的 2/3。
  •   grid-template-rows 定义行的高度,100px 200px 表示第一行高度 100px,第二行高度 200px。

四、网格项的布局

  通过 grid-column 和 grid-row 可以控制元素在网格中的位置和跨越的行列数。

.item {
  grid-column: 2 / 4; /* 从第2列到第4列 */
  grid-row: 1 / 2;    /* 从第1行到第2行 */
}
  •   grid-column 控制元素跨越的列范围,2 / 4 表示从第2列到第4列(注意:网格的列和行是从 1 开始编号的)。
  •   grid-row 控制元素跨越的行范围,1 / 2 表示从第1行到第2行。

 五、 网格间距

  通过 gap(或 grid-gap)设置网格之间的间距。

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 三列 */
  grid-gap: 20px; /* 行列间距为 20px */
}

  grid-gap 设置了行间距和列间距,可以分别使用 grid-row-gap 和 grid-column-gap 来设置不同的间距。

  六、 自适应布局

  你还可以使用 auto 和 minmax() 来定义更灵活的布局。

.container {
  display: grid;
  grid-template-columns: repeat(3, minmax(100px, 1fr)); /* 每列宽度在100px到可用空间之间 */
}

七、 对齐和分布

  CSS Grid 还提供了对齐和分布的功能,如 justify-items,align-items,justify-content,align-content 等。

  •   justify-items:控制网格项在水平方向上的对齐。
  •   align-items:控制网格项在垂直方向上的对齐。
  •   justify-content:控制整个网格容器在水平方向上的对齐。
  •   align-content:控制整个网格容器在垂直方向上的对齐。
.container {
  display: grid;
  justify-items: center; /* 水平居中对齐 */
  align-items: center;   /* 垂直居中对齐 */
}

八、 完整示例

HTML

<div class="container">
  <div class="item item1">项1</div>
  <div class="item item2">项2</div>
  <div class="item item3">项3</div>
</div>

CSS

.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 100px 200px 100px;
  gap: 10px;
}

.item {
  background-color: #4CAF50;
  color: white;
  text-align: center;
  padding: 20px;
}

.item1 {
  grid-column: 1 / 3;
  grid-row: 1 / 2;
}

.item2 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}

.item3 {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}

九、总结

CSS Grid 布局非常强大,允许你通过行列系统快速构建复杂的布局。你可以使用它来处理各种网页布局,尤其是在响应式设计中,它的灵活性尤为突出。通过熟练掌握网格系统,可以让页面布局更加简洁和易于维护。

欢迎关注VX公众号:前端小知识营地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值