Css 简明教程

CSS - grid Property

CSS grid 属性是一个简写属性,用于在一个声明中声明所有显式和隐式网格属性。

这是定义元素网格布局的一种方便且简洁的方法。 grid 属性是以下单独的与网格相关的属性的简写:

Possible Values

  1. <grid-template> − 与 grid template 简写作用相同。

  2. <grid-template-rows> / [ auto-flow && dense? ] <grid-auto-columns> - 将 grid-template-rows 设置为指定值(自动流或稠密)。如果 auto-flow 关键字位于斜杠的右侧,它将 grid-auto-flow 设置为列。如果额外指定 dense 关键字,则 auto-placement 算法会使用“稠密”打包算法。如果省略 grid-auto-columns ,则将其设置为 auto

  3. [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns> - 将 grid-auto-columns 设置为指定值。如果 auto-flow 关键字位于斜杠的左边,它将 grid-auto-flow 设置为行。如果额外指定 dense 关键字,则自动定位算法会使用“稠密”打包算法。如果省略 grid-auto-rows ,则将其设置为 auto

Applies to

所有 HTML 元素。

DOM Syntax

object.style.grid = "<grid-template>|<grid-template-rows> / [ auto-flow && dense? ] <grid-auto-columns>| [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>";

CSS grid - <grid-template>

以下示例演示了将网格设置为 grid: 100px/ 200px 的情况,第一行高 100px,列宽 200px -

<html>
<head>
<style>
   .grid-box {
      display: grid;
      grid: 100px / 200px;
      gap: 10px;
   }
   .grid-box > div {
      background-color: red;
      border: 3px solid lightgreen;
      padding: 10px;
      text-align: center;
   }
</style>
</head>
<body>
   <div class="grid-box">
      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
   </div>
</body>
</html>

CSS grid - minmax() / repeat()

以下示例演示 grid: minmax(100px, min-content) / repeat(auto-fill, 50px); 属性的用途。

<html>
<head>
<style>
   .grid-container {
      display: grid;
      grid: minmax(100px, min-content) / repeat(auto-fill, 50px);
      color: white;
      text-align: center;
      width: 300px;
   }
   .grid-container > div {
      background-color: red;
      border: 2px solid lightgreen;
      margin: 5px;
   }
</style>
</head>
<body>
   <div class="grid-container">
      <div>Grid item 1</div>
      <div>Grid item 2</div>
      <div>Grid item 3</div>
      <div>Grid item 4</div>
      <div>Grid item 5</div>
      <div>Grid item 6</div>
   </div>
</body>
</html>

CSS grid - auto-flow Value

以下示例演示使用 grid: auto-flow / 200px 属性将行大小设置为 auto-flow ,它会自动调整行的高度,并将列的宽度设置为 200px -

<html>
<head>
<style>
   .grid-container {
      display: grid;
      grid: auto-flow / 200px;
      color: white;
      width: 300px;
      border: 2px solid lightgreen;
   }
   .grid-container > div {
      background-color: red;
      border: 2px solid lightgreen;
      padding: 10px;
   }
</style>
</head>
<body>
   <div class="grid-container">
      <div>Grid item 1</div>
      <div>Grid item 2</div>
      <div>Grid item 3</div>
      <div>Grid item 4</div>
      <div>Grid item 5</div>
      <div>Grid item 6</div>
   </div>
</body>
</html>

CSS grid - auto-flow dense Value

以下示例演示 grid: 100px 200px / auto-flow dense 属性的用途。它指定两行,高度分别为 100px 和 200px。

将列设置为 auto-flow dense ,它会自动将项目密集排列在网格中,以填入尽可能多的网格元素,而不会留下间隙。

<html>
<head>
<style>
   .grid-container {
      display: grid;
      grid: 100px 200px / auto-flow dense;
      color: white;
      width: 300px;
      border: 2px solid lightgreen;
   }
   .grid-container > div {
      background-color: red;
      border: 2px solid lightgreen;
      padding: 10px;
   }
</style>
</head>
<body>
   <div class="grid-container">
      <div>Grid item 1</div>
      <div>Grid item 2</div>
      <div>Grid item 3</div>
      <div>Grid item 4</div>
      <div>Grid item 5</div>
      <div>Grid item 6</div>
   </div>
</body>
</html>

CSS grid - [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>

以下示例演示 grid: auto-flow 50px / repeat(3, 150px) 属性将行设置为 auto-flow 50px ,它会自动将项目排列在网格中,并将行高设置为 50px。

repeat(3, 150px) 指定三列,每列宽 150px。

<html>
<head>
<style>
   .grid-container {
      display: grid;
      grid: auto-flow 50px / repeat(3, 150px);
      color: white;
      width: 300px;
      border: 2px solid lightgreen;
   }
   .grid-container > div {
      background-color: red;
      border: 2px solid lightgreen;
      padding: 10px;
   }
</style>
</head>
   <div class="grid-container">
      <div>Grid item 1</div>
      <div>Grid item 2</div>
      <div>Grid item 3</div>
      <div>Grid item 4</div>
      <div>Grid item 5</div>
      <div>Grid item 6</div>
   </div>
</body>
</html>

以下是与网格相关的 CSS 属性列表:

property

value

display

定义元素是网格容器还是内联网格容器。

gap

定义行和列之间的间隙。

grid-area

定义网格布局中网格项的位置和大小。

grid-column

控制网格容器中网格项在列方向上的放置。

grid-row

控制网格容器中网格项在行方向上的放置。

grid-template

指定网格中的网格列、网格行和网格区域。

grid-auto-columns

确定自动生成的网格列轨迹或此类轨迹的模式的大小。

grid-auto-rows

确定自动生成的网格行轨迹或此类轨迹的模式的大小。

grid-auto-flow

指定网格中网格项的排列。