共计 1321 个字符,预计需要花费 4 分钟才能阅读完成。
grid-template-columns 的 3 个值表示三列,相应的数值表示 列宽 即都为 100px。
grid-template-rows 的 2 个值表示两行,相应的数值表示 行高 即都为 50px
可以变化一下行高跟列宽的值看下效果,代码:
.wrapper {display: grid; grid-template-columns: 200px 50px 100px; grid-template-rows: 100px 30px;}
新建一个前端学习 qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。
放置 items(子元素)
=================
我们使用与之前相同的 HTML 标记,为了帮助我们更好的理解,我们在每个 items(子元素) 加上了单独的 class:
1
2
3
4
5
6
创建一个 3×3 的 grid(网格):
.wrapper {display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 100px;}
在页面上看到 3×2 的 grid(网格),而我们定义的是 3×3 的 grid(网格)。这是因为我们只有 6 个 items(子元素) 来填满这个网格。如果我们再加 3 个 items(子元素),那么最后一行也会被填满。定位和调整(item)子元素大小
要 定位和调整 items(子元素) 大小,我们将使用 grid-column 和 grid-row 属性来设置:
.item1 {grid-column-start: 1; grid-column-end: 4;}
当然可以有简写方式:
.item1 {grid-column: 1 / 4;}
上面代码意思就是:item1 占据从第一条网格线开始,到第四条网格线结束。显示效果如下:
如果你不明白我们设置的只有 3 列,为什么有 4 条网格线呢?看看下面这个图像,黑色的列网格线你就明白了:
如果上面的看懂了,来个复杂点的巩固下。
.item1 {grid-column-start: 1; grid-column-end: 3;} .item3 {grid-row-start: 2; grid-row-end: 4;} .item4 {grid-column-start: 2; grid-column-end: 4;}
效果如图:
响应式布局例子
实现如图效果:
结构布局
HEADER
MENU
CONTENT
FOOTER
使用 grid-template-columns 属性创建一个 12 列的网格,每个列都是一个单位宽度(总宽度的 1/12)。(愚人码头注:其中,repeat(12, 1fr) 意思是 12 个重复的 1fr 值。fr 是网格容器剩余空间的等分单位。)
使用 grid-template-rows 属性创建 3 行,第一行高度是 50px,第二行高度是 350px 和第三行高度是 50px。
使用 grid-gap 属性在网格中的网格项之间添加一个间隙。
最后
为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。
开源分享:【大厂前端面试题解析 + 核心总结学习笔记 + 真实项目实战 + 最新讲解视频】
原文地址: 教你 CSS Grid 布局实现响应式设计