CSS网格元素

CSS网格布局是一种用于创建页面布局的强大工具。它由一个或多个网格容器组成,每个容器中包含一个或多个网格项。默认情况下,每个网格容器的列和行都包含一个网格项,但也可以通过设置网格项的属性来控制它们跨越多个列或行。

一、CSS网格元素

1、grid-column属性

grid-column 是 grid-column-start 和 grid-column-end 属性的简写属性。grid-column 属性用于定义网格元素在网格布局中的列位置。它接受一个或多个值,表示网格元素的起始列和结束列。可以参考行号来设置网格元素,也可以使用关键字 "span" 来定义元素将跨越的列数。

以下设置 "item1" 在第 1 列开始,在第 5 列前结束:

.item1 {
grid-column: 1 / 5;
}

以下设置 "item1" 跨越 3 列:

.item1 {
grid-column: 1 / span 3;
}

以下设置 "item2" 跨越 3 列:

.item2 {
grid-column: 2 / span 3;
}

2、grid-row属性

grid-row 是 grid-row-start 和 grid-row-end 属性的简写属性。grid-row 属性用于定义网格元素在网格布局中的行位置。它接受一个或多个值,表示网格元素的起始行和结束行。

以下设置 "item1" 在第 1 行开始,在第 4 行前结束:

.item1 {
grid-row: 1 / 4;
}

以下设置 "item1" 跨越两行:

.item1 {
grid-row: 1 / span 2;
}

3、grid-area属性

grid-area 属性是 grid-row-start, grid-column-start, grid-row-end 以及 grid-column-end 属性的简写。grid-area 属性用于指定网格元素在网格布局中的区域位置。它接受一个或多个值,表示网格元素的起始行、起始列、结束行和结束列。

以下设置 "item8" 从第 1 行开始和第 2 列开始, 第 5 行和第 6 列结束:

.item8 {
grid-area: 1 / 2 / 5 / 6;
}

以下设置 "item8" 从第 2 行开始和第 1 列开始, 横跨 2 行 3 列:

.item8 {
grid-area: 2 / 1 / span 2 / span 3;
}

二、网格元素命名

grid-area 属性本身并不支持对网格元素进行命名。它主要用于指定网格元素在网格布局中的区域位置,而不是用于标识或引用特定的网格元素。命名的网格元素可以通过容器的 grid-template-areas 属性来引用。

以下 item1 命名为 "myArea", 并跨越五列:

.item1 {
grid-area: myArea;
}
.grid-container {
grid-template-areas: 'myArea myArea myArea myArea myArea';
}

每行由单引号内 ' ' 定义,以空格分隔。. 号表示没有名称的网格项。

.item1 {
grid-area: myArea;
}
.grid-container {
grid-template-areas: 'myArea myArea . . .';
}

要定义两行,请在另一组单引号内 ' ' 定义第二行的列。以下设置 "item1" 跨越 2 行 2 列:

.item1 {
grid-area: myArea;
}
.grid-container {
grid-template-areas: 'myArea myArea . . .';
}

命名所有网格元素,并制作一个网页模板:

.item1 { grid-area: header; }
.item2 { grid-area: menu; }
.item3 { grid-area: main; }
.item4 { grid-area: right; }
.item5 { grid-area: footer; }
.grid-container {
grid-template-areas:
'header header header header header header'
'menu main main main right right'
'menu footer footer footer footer footer';
}

三、网格元素顺序

网格布局允许将网格元素放置在任意地方。HTML 代码中的第一元素不一定非要显示为网格中元素的第一项。

.item1 { grid-area: 1 / 3 / 2 / 4; }
.item2 { grid-area: 2 / 3 / 3 / 4; }
.item3 { grid-area: 1 / 1 / 2 / 2; }
.item4 { grid-area: 1 / 2 / 2 / 3; }
.item5 { grid-area: 2 / 1 / 3 / 2; }
.item6 { grid-area: 2 / 2 / 3 / 3; }

可以使用媒体查询,重新排列在指定屏幕尺寸下的顺序:

@media only screen and (max-width: 500px) {
.item1 { grid-area: 1 / span 3 / 2 / 4; }
.item2 { grid-area: 3 / 3 / 4 / 4; }
.item3 { grid-area: 2 / 1 / 3 / 2; }
.item4 { grid-area: 2 / 2 / span 2 / 3; }
.item5 { grid-area: 3 / 1 / 4 / 2; }
.item6 { grid-area: 2 / 3 / 3 / 4; }
}
广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录