使用CSS网格布局放置元素的七种方法,261页前端面试题宝典

这是您需要对这些属性使用的语法:

.selector {

grid-row: row-start / row-end;

grid-column: col-start / col-end;

}

要将项目C放置在网格的右下角,可以使用以下CSS:

.c {

grid-row: 2 / 4;

grid-column: 2 / 4;

}

#3使用 grid-area


CSS网格-使用网格区域的示例

从技术上讲,我们要布置的项目涵盖了网页的特定区域。该项目的边界由我们为网格线提供的值确定。使用grid-area属性可以一次提供所有这些值。

这是使用此属性时CSS的外观:

.selector {

grid-area: row-start / col-start / row-end / col-end;

}

如果您难以记住这些值的正确顺序,请记住,首先必须指定元素左上角(row-start– col-start)的位置,然后指定元素右下角(row-end– col-end)的位置。

就像前面的示例一样,要将项目C放置在网格的右下角,我们可以使用以下CSS:

.c {

grid-area: 2 / 2 / 4 / 4;

}

#4使用span关键字


1479656956CSSGrid-span-keyword.pnguploading.4e448015.gif转存失败重新上传取消CSSGrid-使用span关键字和网格线的示例

您也可以使用span关键字来设置特定元素将跨越的列数或行数,而不是在布置元素时指定结束线。

使用span关键字时,这是正确的语法:

.selector {

grid-row: row-start / span row-span-value;

grid-column: col-start / span col-span-value;

}

如果您的元素仅跨越一行或一列,则可以省略span关键字及其值。

这次让我们将项目C放置在网格的左上角。我们可以使用以下CSS来做到这一点。

.c {

grid-row: 1 / span 2;

grid-column: 1 / span 2;

}

#5使用命名行


到目前为止,我们一直在使用原始数字来指定网格线,并且在使用简单布局时很容易使用。但是,当您必须放置多个元素时,可能会有些混乱。大多数情况下,页面上的元素会属于特定类别。例如,标题可以从列线c1到列线c2,从行线r1到行线r2。正确命名所有行,然后使用这些名称而不是数字放置元素会容易得多。

新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。

让我们创建一个非常基本的布局以使概念更清晰。首先,我们将必须修改应用于网格容器的CSS:

.container {

display: grid;

grid-gap: 10px;

grid-template-columns: [head-col-start] 180px [content-col-start] 180px [content-col-mid] 180px [head-col-end];

grid-template-rows: [head-row-start] auto [head-row-end] auto [content-row-end] auto [footer-row-end];

}

上面我所做的就是根据行将包含的内容类型为所有行分配名称。这里的想法是使用使我们对不同元素的位置有一些了解的名称。在此特定示例中,我们的标头元素跨越所有列。因此,将名称“ head-col-start”和“ head-col-end”分别分配给第一列和最后一列,将清楚表明这些行分别代表标题的左端和右端。所有其他行都可以类似的方式命名。在命名所有行之后,我们可以使用以下CSS放置所有元素。

.header {

grid-column: head-col-start / head-col-end;

grid-row: head-row-start / head-row-end;

}

.sidebar {

grid-column: head-col-start / content-col-start;

grid-row: head-row-end / content-row-end;

}

.content {

grid-column: content-col-start / head-col-end;

grid-row: head-row-end / content-row-end;

}

.footer {

grid-column: head-col-start / head-col-end;

grid-row: content-row-end / footer-row-end;

}

尽管我们不得不编写比平时更多的CSS,但是现在只要看一下CSS,就可以了解元素的位置。

#6使用具有通用名称和span关键字的命名行


CSSGrid-带有命名行和span关键字的示例

在以前的方法中,所有行都有不同的名称来标记元素的开始,中点或结束。例如,“ content-col-start”和“ content-col-mid”标记了我们网页内容部分的起点和中点。如果内容部分涵盖了更多行,我们将不得不提出其他行名称,例如“ content-col-mid-one”,“ content-col-mid-two”等等。

在这种情况下,我们可以对内容部分的所有网格线使用通用名称(例如“ content”),然后使用span关键字指定一个元素跨越多少行。我们还可以在行名称中提到一个数字,以设置元素将跨越的行数或列数。

使用此方法,CSS将如下所示:

.selector {

grid-row: row-name row-start-number/ row-name row-end-number;

grid-column: col-name col-start-number / span col-name col-to-span;

}

与最后一种方法一样,该方法也需要您修改网格容器的CSS。

.container {

display: grid;

grid-gap: 10px;

grid-template-columns: [one-eighty] 180px [one-eighty] 180px [one-eighty] 180px;

grid-template-rows: [head-row] auto [content-row] auto [content-row] auto [content-row] auto [footer-row] auto;

}

每条命名的列线都具有相同的名称,以像素为单位表示其宽度,而每条命名的行线则代表网页的特定部分所覆盖的行。在此演示中,我在侧边栏下方介绍了广告部分。这是CSS:

.header {

grid-column: one-eighty 1 / one-eighty 4;

grid-row: head-row / content-row 1;

}

.sidebar {

grid-column: one-eighty 1 / one-eighty 2;

grid-row: content-row 1 / content-row 2;

}

.advert {

grid-column: one-eighty 1 / one-eighty 2;

grid-row: content-row 2 / content-row 3;

}

.content {

grid-column: one-eighty 2 / one-eighty 4;

grid-row: content-row 1 / span content-row 2;

}

.footer {

grid-column: one-eighty 1 / span one-eighty 3;

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

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

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

img

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

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

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

最后

给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。


]

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

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

最后

给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。

[外链图片转存中…(img-lNXSYeAE-1712295281771)]
[外链图片转存中…(img-JFl7SO4N-1712295281771)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值