CSS Grid 中 auto-fit 和 auto-fill 属性的区别


响应式网页是网站开发中必须始终牢记的关键点。Grid 模块使开发者能够轻松设计网页,无需大量使用定位,因为 id 模块提供了一种网格类型的布局系统,其中包含行和列。

auto-fill 属性

auto-fill 属性用于用可能的列填充行,添加的列将占据空间,其他列将为空。auto-fill 属性是 CSS Grid 的重要属性,主要用于在不使用媒体查询的情况下创建响应式布局。

语法

让我们看看 auto-fill 属性的语法。

:auto-fill;

示例

在下面的程序中:

  • 我们首先创建了一个名为“autofill”的类,然后在类中放置了 3 个项目,每个项目都有不同的颜色,展示不同的盒子。

  • 我们将“display 属性”设置为 grid,并为容器分配了高度和宽度。之后,使用 auto-fill 属性设置其 minimax 值。

  • 最后,我们为前面创建的 3 个项目指定了尺寸。

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Example of using the auto-fill property</title>
   <style>
      .first-item {
         background-color: violet;
         border: solid black 4px ;
         max-width: 100%;
         min-height: 150px;
         height: auto;
      }
      .second-item {
         background-color: blue;
         border: solid black 5px;
         min-height: 150px;
         max-width: 100%;
         height: auto;
      }
      .third-item {
         background-color: maroon;
         border: solid black 5px;
         min-height: 150px;
         max-width: 100%;
         height: auto;
      }
      .autfill {
         margin-top: 4%;
         border: solid black 3px;
         width: 80vh;
         grid-template-columns: repeat(
         auto-fill, minmax(190px, 1fr));
         display: grid;
         gap: 5px;
      }
      .para{
         text-align: center;
      }
   </style>
</head>
<body>
   <div class="content">
      <div class="para"><h1>This is an example!!</h1></div>
      <div class="autfill">
         <div class="first-item"><h2 class="group">1</h1></div>
         <div class="second-item"><h2 class="group">2</h1></div>
         <div class="third-item"><h2 class="group">3</h1></div>
      </div>
   </div>
</body>
</html>

auto-fit 属性

“auto-fit”属性类似于“auto-fill”属性,唯一的区别在于该属性会根据设备宽度扩展其大小以占据可用空间。如果网格的所有项目都为空,则所有项目都被视为单个轨道。

示例

在下面的示例中,我们将属性值设置为 auto-fit。auto-fit 属性将自身拉伸,以填充整行的宽度,并通过自身拉伸来填充任何空隙。

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Example of using the auto-fit property</title>
   <style>
      #container {
         display:grid;
         width:100%;
         border:2px solid blue;
         grid-template-columns: repeat(auto-fit, minmax(100px, 2fr));
      }
      #first-item,#second-item,#third-item {
         height:100px;
         margin:3px 15px 15px 2px;
         background-color: blue;
      }
   </style>
</head>
<body>
   <div id="container">
      <div id="first-item">1</div>
      <div id="second-item">2</div>
      <div id="third-item">3</div>
   </div>
</body>
<html>

在上面的示例中,您可以看到项目已填充了行的整个宽度和任何剩余空间的区域。

auto-fit 与 auto-fill 属性的比较

网格布局具有不同的属性。auto-fit 和 auto-fill 属性都是 CSS Grid 模块的一部分。网格布局的语法如下:

.container-grid{
   display: grid;
}

以上是网格布局的语法,它将 HTML 元素的 display 属性设置为网格布局。

结论

auto-fit 和 auto-fill 都是 CSS Grid 的属性,用于在不使用媒体查询的情况下创建响应式布局,其中 auto-fill 属性允许在行中留出空隙,而 auto-fit 属性的内容将自身拉伸以完全填充行。在本文中,我们介绍了用于创建响应式布局的这两个属性:auto-fill 和 auto-fit。

更新于:2023年1月18日

1K+ 阅读量

开启你的职业生涯

完成课程获得认证

开始学习
广告