CSS - 网格布局



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

可能的值

  • <grid-template> − 使用 grid-template-columnsgrid-template-rowsgrid-template-areas 属性设置网格布局。

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

    − 使用 grid-template-rows 属性显式定义行轨道(同时将 grid-template-columns 设置为 none)和 grid-auto-columns 属性来指定 grid-auto-rows 属性,将 grid-auto-columns 的自动重复设置为 auto,可以生成自动流。此外,将 grid-auto-flow 设置为 column,如果需要,可以使用 dense 选项。
  • [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>

    − 将 grid-auto-flow 设置为 row,如果需要,可以使用 dense 选项。

应用于

所有 HTML 元素。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

DOM 语法

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-template>

下面的例子演示了grid: 100px/ 200px 创建行高为 100px,列宽为 300px 的网格。

Open Compiler
<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>

下面的例子演示了grid: minmax(400px, min-content) / repeat(auto-fill, 50px) 属性的使用。

  • minmax(400px, min-content) 用于行大小调整,每行至少宽 200px 并扩展以适应其内容。

  • repeat(auto-fill, 50px) 用于创建尽可能多的列以适应容器,每列固定宽度为 50px。

Open Compiler
<html> <head> <style> .grid-container { display: grid; grid: minmax(200px, min-content) / repeat(auto-fill, 50px); color: white; text-align: center; } .grid-container > div { background-color: red; border: 2px solid lightgreen; height: 50px; width: 50px; margin: 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-template-rows> / [ auto-flow && dense? ] <grid-auto-columns>

下面的例子演示了grid: 100px /auto auto auto 属性的使用,它将网格设置为具有 4 列,每列宽 100px,auto 关键字自动调整大小以填充剩余空间。

Open Compiler
<html> <head> <style type="text/css"> .grid-container { display: grid; grid: 100px /auto auto auto; color: white; width: 360px; border: 2px solid rgb(29, 231, 80); } .grid-container > div { background-color: rgb(228, 9, 9); border: 2px solid rgb(29, 231, 80); 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>

下面的例子演示了grid: 20% / auto auto auto dense 属性的使用,第一列应占据可用宽度的 20%,auto 关键字自动调整大小以填充剩余空间,dense 关键字尝试尽可能多地填充网格项而不留空隙。

Open Compiler
<html> <head> <style> .grid-container { display: grid; grid: 20% / auto auto auto dense; color: white; width: 300px; border: 2px solid rgb(29, 231, 80); } .grid-container > div { background-color: rgb(228, 9, 9); border: 2px solid rgb(29, 231, 80); 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 网格 - [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>

下面的例子演示了grid: auto 150px / repeat(3, 100px) 属性的使用,第一行将根据内容自动调整高度,而第二行的高度固定为 150px。每列的宽度固定为 100px。

Open Compiler
<html> <head> <style> .grid-container { display: grid; grid: auto 150px / repeat(3, 100px); color: white; width: 300px; border: 2px solid rgb(29, 231, 80); } .grid-container > div { background-color: rgb(228, 9, 9); border: 2px solid rgb(29, 231, 80); 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>
广告