由于大多数现代浏览器都广泛支持 CSS 网格,因此为您的项目创建响应式布局从未如此简单。过去,经常使用浮点数而不是使用网格,这会导致许多奇怪的行为。下面,我们将介绍网格框的主要功能,以及如何使用它。
使用 CSS 网格,您可以定义网格,通常使用grid-template-columns
和grid-template-rows
,然后将项目放置在该网格上,这样您就可以完全控制内容的显示位置。
创建一个网格框#
来自生成器的代码
.item-1 {
grid-column: 1;
grid-row: 1;
}
.item-2 {
grid-column: 4/5;
grid-row: 2/3;
}
.item-3 {
grid-column: 1/2;
grid-row: 3/5;
}
.item-4 {
grid-column: 3/4;
grid-row: 4/5;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
为了使网格工作,container
元素必须display: grid;
附加到它。我们还可以inline-grid
创建与文本内联的网格。
然后我们可以设置grid-template-columns
,grid-row-columns
如果我们愿意的话。这两个属性定义了网格中出现的行数和列数。
.container {
display: grid;
grid-template-columns: 20% 20% 20% 20% 20%;
row-gap: 1px;
column-gap: 1px;
}
容器的属性#
有关关键网格元素及其工作方式的参考,请参见下文。
网格模板列
设置网格元素的列数。不同的列用空格隔开。您可以拥有任意数量的列。
.container {
display: grid;
grid-template-columns: 20% 20% 20% 20% 20%;
}
网格模板行
设置网格元素的行数。不同的行用空格隔开。您可以拥有任意数量的行。
.container {
display: grid;
grid-template-rows: 60px 60px 60px 60px 60px;
}
对齐项目
设置项目沿列轴的位置,即它们是否应该左对齐或拉伸。
.container {
display: grid;
justify-items: start;
}
对齐项目
设置项目沿行轴的位置,即是否应该在顶部、底部、中心或拉伸对齐。
.container {
display: grid;
align-items: start;
}
行间距/列间距
设置网格中不同列和行之间的间距。
.container {
display: grid;
row-gap: 2px;
column-gap: 2px;
}
项目的属性#
还有一些属性可以应用于网格中的单个项目。以下是这些项目的参考。
网格列/网格行
设置项目在网格中的位置。可以浓缩为grid-area: [row-start] / [column-start] / [row-end] / [column-end].
.item {
display: grid;
row-gap: 2px;
column-gap: 2px;
}
对齐自我
沿行轴对齐特定项目。
.container {
display: grid;
align-self: normal;
}
justify-self
沿列轴对齐特定项目。
.container {
display: grid;
justify-self: normal;
}