2024年最全10分钟理解CSS3 Grid布局,2024年最新四轮面试完后希望大吗

总结

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

前端资料汇总

效果:

当我们设置了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%;

}

效果:

(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``;

}

效果:

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

(2) minmax

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

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

css:

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

// 或者

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

效果:

(3) grid gap

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

css:

grid-gap:{

10px``;

}

效果:

![]( )

3. Grid Line

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

<``img 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;

}

效果:

通过设置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
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;

总结

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

前端资料汇总

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值