介绍
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格。 Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列。它还能使我们在不改变任何HTML的情况下,使用 CSS 来定位和调整网格内的每个元素。它允许 HTML 纯粹作为内容的容器。HTML 结构不再受限于样式表现,比如不要为了实现某种布局而多次嵌套,现在这些都可以让 CSS 来完成。
定义一个网格
Grid(网格) 模块为
display
属性提供了一个新的值: grid
。当你将任何元素的 display
属性设置为 grid
时,那么这个元素就是一个 网格容器(grid container),它的所有直接子元素就成了 网格项(grid items)。让我们创建创建一个 3×3 的布局,做一个 Tic-Tac-Toe (井字游戏) 棋盘。
首先,我们将写一些 HTML:
<div class="game-board">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
如您所见,
.game-board
div 是网格容器,而 .box
div 是网格项。现在我们将通过 Grid 布局来实现 3×3 布局。
.game-board
{
display: grid;
grid-template-rows: 200px 200px 200px;
grid-template-columns: 200px 200px 200px;
}
在这里,我还使用了其他两个属性。
属性允许我们指定网格中的行数及行的高度。那么你应该猜到另一个属性是干什么的了。grid-template-rows
属性允许我们指定网格中的列数及列的宽度。您可以指定任何单位的尺寸大小,包括像素,百分比和其他单位 grid-template-columns
fr
,我们将在下一步学习。fr 单位(等分)
fr
是为网格布局定义的一个新单位。它可以帮助你摆脱计算百分比,并将可用空间等分。例如,如果在网格容器中设置这个规则: grid-template-rows: 2fr 3fr
新闻热点
疑难解答