了解 CSS 中的网格模板列

这 grid-template-columnsproperty只是CSS Grid的一小部分。 要特别了解这个属性,您首先需要了解 CSS 网格是什么 。了解 CSS 中的网格模板列_第1张图片

为了让您加快速度,网格布局基本上提供了一个基于网格的布局系统。 要设计页面或模板,您可以使用行和列,而不是使用诸如 float: right;.在本文中,我们将探讨 grid-template-columns在 CSS 中,了解它是什么以及如何最好地使用它。 让我们开始吧!

什么是 grid-template-columns?

简单的说, grid-template-columns是一个属性,如何修复“未找到对话”ChatGPT 错误指定网格布局中的列数以及所述列的宽度。 该属性的值由空格分隔,每个值指定其各自列的大小:

grid-template-columns: auto auto auto;
grid-template-columns: auto auto;
grid-template-columns: 20% 20% 20% 20%;

上面的行是如何使用的基本演示 grid-template-columns。 他们三个 auto分隔的值表示具有相同宽度的三列。 以下两个也同样适用 auto价值观。 如何解决“此帐户不允许使用 WhatsApp”的问题至于四个 20%值时,列的宽度将为父元素的 20%。

语法非常简单,但还有更多值,而不仅仅是百分比和 auto。 考虑以下代码:

grid-template-columns: none|auto|max-content|min-content|length|initial|inherit;

由管道分隔的每个值都是一个可能的值,您可以将其用于 grid-template-columns财产。 每个都有其自己的目的,我们将在本文后面讨论。

了解此 属性是可动画的 也很重要。 grid-template-columns可用于动画和过渡,这意味着列可以逐渐从一个值更改为另一个值:




Animation of the grid-template-columns Property

The animation will change the number of columns from 1 to 3 then back to 1 and finally the original 4. on repeat

1
2
3
4
5
6
7
8

这只是一个简单的演示,如何在 Google 地图(桌面版和移动版)中测量距离展示了如何将此属性用于动画和过渡。

了解价值观

让我们回到下面这一行:

grid-template-columns: none|auto|max-content|min-content|length|initial|inherit;

我们将研究每个值,以便您了解布局中的列发生了什么。 首先,我们会得到 initial和 inherit因为它们对于这个特定的属性来说并不是那么有趣。 initial只需设置 grid-template-columns属性为其默认值,在本例中只是 none. 这 inheritvalue 基本上继承了该属性在其父元素上具有的任何值。

none是在需要时生成列的默认值,根据容器大小和列内内容的大小评估宽度。

max-content根据列中最大的项目调整列宽。 min-content根据列中最小的项目调整列宽。 length将给定值设置为列的宽度。

使用下面的代码作为我的简单 HTML,如何修复 Windows 中的“Spotify 现在无法播放此内容”错误我将针对属性的每个值调整 CSS:



  
    
  
  
    

The grid-template-columns property

<div class="item1">First
Second
Third
Fourth
Fifth
Sixth

none

到那个时刻 none,没有明确的网格。 基本上,列的大小要么采用全宽度,要么由另一个属性确定, grid-auto-columns。 如何在 Android 和 iPhone 上检查您的 Google 地图时间线下面的代码显示了 none属性及其如何操作输出:

body {
  background-color: white;
  padding: 10vw;
}
#test-div {
  height: auto;
  display: grid;
  border-radius: 1vw;
  gap: 1vw;
  background-color: black;
  padding: 1vw;
  grid-template-columns: none;
}
#test-div div {
  background-color: white;
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
  border-radius: 0.5vw;
}

下面是输出:

auto

当你有 auto作为属性的值,它只是将整个宽度除以您拥有的列数。 每个都有相同的宽度。 在下面的代码中,请注意 grid-template-columns财产用途 auto三次。 因此,您将拥有相同宽度的三列:

body {
  background-color: white;
  padding: 10vw;
}
#test-div {
  height: auto;
  display: grid;
  border-radius: 1vw;
  gap: 1vw;
  background-color: black;
  padding: 1vw;
  grid-template-columns: auto auto auto;
}
#test-div div {
  background-color: white;
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
  border-radius: 0.5vw;
}

输出如下:

随着 auto价值,你可以深入一点。 如果您对该财产有其他价值,例如, grid-template-columns: auto 3px auto 50px;,UI 将有四列。 第一个将与第三个具有相同的宽度,而第二个和第四个将具有唯一指定的宽度。 现在,这应该告诉你 auto获取任何可用空间并将其平均分配给具有所述值的任何列。

max-content

max-content需要一点 HTML 调整,因为它将采用最大内容的宽度。 下面的代码显示了六个不同的 div 以及一些随机内容。 与前面的示例一样,您在 grid-template-columns属性将决定您获得的列数:



  
    
  
  
    

The grid-template-columns property

First
Second
blah blah blah
Fourth
Fifth
Sixth

在这段代码中, grid-template-columns: max-content max-content max-content;结果分为三列。 话虽这么说,即使它们具有相同的值,列的宽度也将由 div 中内容的跨度决定。 因此,里面的内容决定了div的宽度:

body {
  background-color: white;
  padding: 10vw;
}
#test-div {
  height: auto;
  display: grid;
  border-radius: 1vw;
  gap: 1vw;
  background-color: black;
  padding: 1vw;
  grid-template-columns: max-content max-content max-content;
}
#test-div div {
  background-color: white;
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
  border-radius: 0.5vw;
}

输出如下:

请注意 blah blah blah是最大的内容,因此,它决定了三列的宽度。 同样的概念也适用于 min-content价值。 然而,问题是你会遇到一些溢出。

length

length并不意味着字面意思,长度。趣知笔记 - 分享有价值的教程! length基本上代表 CSS 中给出的实际值。 其中包括您可能想要使用的任何和所有 CSS 单元; 它们都适用,无论您是否使用 vw, rem, em, fr等。定义的每个列值都将反映在您的 UI 中:

body {
  background-color: white;
  padding: 10vw;
}
#test-div {
  height: auto;
  display: grid;
  border-radius: 1vw;
  gap: 1vw;
  background-color: black;
  padding: 1vw;
  grid-template-columns: 10vw 25vw 40vw;
}
#test-div div {
  background-color: white;
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
  border-radius: 0.5vw;
}

上面的代码将为第一列提供宽度 10vw,第二个宽度为 25vw,第三个宽度为 40vw。 输出如下所示:

您可以一起或统一使用这些值。 作为设计师,你拥有自由。 慢慢来,尝试一下这些价值观,并记住享受其中的乐趣。

概括

就像我在本文开头所说的那样, grid-template-columns这只是整个网格系统的一个方面。 在本文中,我们学习了如何使用 none, auto, max-content, min-content, 和 length价值观。

如果这让您感到兴奋,那么您可以深入了解该软件附带的所有内容 display: gridCSS 中的行。 可能性是无止境。 快乐编码!

你可能感兴趣的:(css,前端)