这是您需要对这些属性使用的语法:
.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
从技术上讲,我们要布置的项目涵盖了网页的特定区域。该项目的边界由我们为网格线提供的值确定。使用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
关键字
您也可以使用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
关键字的命名行
在以前的方法中,所有行都有不同的名称来标记元素的开始,中点或结束。例如,“ 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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。
]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。
[外链图片转存中…(img-lNXSYeAE-1712295281771)]
[外链图片转存中…(img-JFl7SO4N-1712295281771)]