10分钟理解CSS3 Grid布局

43,558次阅读
没有评论

共计 3317 个字符,预计需要花费 9 分钟才能阅读完成。

max-width: 960px;

margin: 0 auto;

}

#content div{

background: lightgrey;

padding: 30px;

}

#content div:nth-child(even){

background: skyblue;

}

效果:

10 分钟理解 CSS3 Grid 布局

当我们设置了 display: gridgrid-template-columns: 33.3% 33.3% 33.3%#content 就被划分成了三行三列的 grid,此时 #content 被称为 grid container,而 #content 的子元素称为 grid item。

我们也可以任意改变 column 的个数和宽度,比如:

#content{

grid-template-columns: 10% 20% 30% 40%;

}

效果:

10 分钟理解 CSS3 Grid 布局

(2) fr(fraction)

css3 中引入了一个新的单位 fr(fraction),中文意思为“分数”,用于替代百分比,因为百分比(小数)存在除不尽的情况,用分数表示可以避免多位小数的写法。比如三列等宽的 grid 可以表示为:

grid-template-columns: repeat(3, 1fr);

(3) repeat

我们也可以用 repeat 方法来简化 column 或者 row 的写法,repeat 方法接受两个参数,第一个参数表示重复的次数,第二个参数表示重复的内容。所以,三列等宽的 grid 我们还可以表示为:

grid-template-columns: repeat``(``3``, 1``fr);

当我们要定义的列数很多时,repeat 就会变得非常有用,比如我们要定义一个 10 列等宽的 grid,可以写成 repeat(10, 1fr),而不用将1fr 重复书写 10 遍。

2. Row

(1) 设置 row

当我们设置 column 之后,row 会因为元素的换行而自动产生,但是我们依然可以设置 row 的个数和高度。

css:

#content{

display``: grid;

grid-template-columns: repeat``(``3``, 1``fr);

grid-template-rows: repeat``(``4``, 60px``);

max-width``: 960px``;

}

效果:

10 分钟理解 CSS3 Grid 布局

可以看到,虽然第四行没有内容,但是 row 确实存在并占据了那部分空间。

(2) minmax

上面的例子中我们给了 row 一个固定高度,这导致一个问题:如果某个 grid item 中的内容特别多,受制于固定的高度,部分内容将无法显示,如下图:

10 分钟理解 CSS3 Grid 布局

为解决这个问题,css 提供了 minmax 函数,让我们可以设置 row 的最小高度和最大高度,最大高度取 auto 后便可以让 row 的高度自适应:

css:

grid-auto-rows: minmax(``60px``, auto``);

// 或者

grid-template-rows: repeat``(``3``, minmax(``60px``, auto``));

效果:

10 分钟理解 CSS3 Grid 布局

(3) grid gap

如果我们想给行和列之间加上间隔,也有现成的方法:

css:

grid-gap:{

10px``;

}

效果:

![]()

3. Grid Line

以上所有例子中,grid 中的每个 grid item 都是按默认顺序排列的。如果我们想重新布局改变 grid item 的位置或大小呢?为此引入了 grid lines 的概念,所谓的 grid lines 就是将 grid 若干等分后的分割线,如下图中横向和纵向序号 1~8 的线即为 grid lines:

src="[http://lc-jOYHMCEn.cn-n1.lcfi...;/]()>

通过定义 grid item 的起始和结束的 grid line 我们就可以实现对 grid item 位置和覆盖面积的控制。一个简单的例子:

html:

1

css:

#content {

display: grid;

grid-template-columns: repeat(8, 100px);

grid-template-rows: repeat(8, 100px);

grid-gap: 10px;

}

.one {

grid-column-start: 3;

grid-column-end: 6;

grid-row-start: 3;

grid-row-end: 6;

}

效果:

10 分钟理解 CSS3 Grid 布局

通过设置grid-column-start/end grid-row-start/end 相当于给 grid item 设置起始坐标和结束坐标,上面的 css 也可以简写为:

.one {

grid-column: 3 / 6;

grid-row: 3 / 6;

}

// 或者

.one {

grid-area: 3 / 3 / 6 / 6;

}

如果 grid item 的起始 grid line 为默认,我们可以只设置它的跨度(span):

.one{

grid-column: span 3;

grid-row: span 3;

}

4. Grid Area Template

除了通过 grid lines 进行布局,css3 提供了一种更牛逼的布局方式:grid area template。与其用语言解释什么是 grid area template,不如直接看代码:

html:

Header

Main

Section

Aside

Footer

css:

body {

color: #fff;

text-align: center;

}

#content {

display: grid;

grid-template-columns: repeat(4, 1fr);

grid-auto-rows: minmax(100px, auto);

max-width: 960px;

margin: 0 auto;

grid-gap: 10px;

grid-template-areas:

“header header header header”

“aside . main main”

“nav . main main”

“section section section section”

“section section section section”

“footer footer footer footer”;

}

#content>* {

background: #3bbced;

padding: 30px;

}

header {grid-area: header;}

main {grid-area: main;}
自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024 年 Web 前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

10 分钟理解 CSS3 Grid 布局

10 分钟理解 CSS3 Grid 布局

既有适合小白学习的零基础资料,也有适合 3 年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了 95% 以上前端开发知识点,真正体系化!

10 分钟理解 CSS3 Grid 布局

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

10 分钟理解 CSS3 Grid 布局

最后

由于篇幅限制,pdf 文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞 + 点击【学习资料】即可领取!

10 分钟理解 CSS3 Grid 布局

[外链图片转存中…(img-5ZqwJfK5-1712856446627)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

10 分钟理解 CSS3 Grid 布局

最后

由于篇幅限制,pdf 文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞 + 点击【学习资料】即可领取!

[外链图片转存中…(img-T7eAF43G-1712856446627)]

[外链图片转存中…(img-MLlRjtwF-1712856446627)]

原文地址: 10 分钟理解 CSS3 Grid 布局

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-23发表,共计3317字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)