当我们在CSS中将父级div的display属性设置为grid或inline-grid时,父级div将成为一个网格容器。
下面是一个例子:
.container { display: grid; background-color: crimson; padding: 10px; } .container > .child { background-color: rgba(255, 255, 255, 0.8); text-align: center; font-size: 30px; margin: 5px; }
现在你可以使用容器属性,例如justify-content和align-items,来将子元素居中在容器div内。我们将在下面的示例中介绍这些属性。
网格模板列(grid-template-columns)
属性grid-template-columns用于定义网格容器中的列数。它还可以帮助定义每个列的宽度。
假设你想在网格容器内定义3列。在这种情况下,你可以使用分数(fractions)作为grid-template-columns属性的值。分数用于将网格布局分割成列或行。
看看下面的例子:
.container { display: grid; grid-template-columns: 1fr 1fr 1fr; background-color: crimson; padding: 10px; } .container > .child { background-color: rgba(255, 255, 255, 0.8); text-align: center; font-size: 30px; margin: 5px; }
如你在上面看到的,我们使用了3个分数1fr来将网格容器分为3列。
grid-template-columns属性还可以用于指定列的宽度。
.container { display: grid; grid-template-columns: 200px 50px 150px 100px; }
除此之外,你还可以将grid-template-columns属性设置为auto。这样,它会根据屏幕大小自动拉伸列的宽度。
下面是一个例子:
.container { display: grid; grid-template-columns: auto auto; }
其中一个最好的功能是你可以轻松地使用grid-template-columns和minmax()函数创建自适应布局,该函数根据屏幕大小设定最小宽度和最大宽度。
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
例如,假设你需要在一个电子商务应用中展示产品列表。你的任务是使其具有响应式布局,因此你决定在桌面上每列显示三个产品,在平板上每列显示两个产品,而在手机上每列只显示一个产品。请看下面的示例:
HTML:
Product 1
共有 0 条评论