hand
_1_12_218
4
返回栏目
0k
3k
5k
1k
2k
0.2k
2k
1k
2k
3k
2k
3k
2k
3k
3k
0.3k
0k
2k
0k
1k
0.1k
0k
0k
2k
2k
3k
0.2k
3k
0k
2k
2k
2k
3k
2k
2k
0k
4k
2k
2k
0k
3k
3k
2k
2k
2k
1k
3k
1k
3k
2k
1k
0.8k
2k
0k
2k
2k
2k
2k
3k
0.4k
4k
2k
5k
2k
3k
2k
3k
3k
4k
2k
3k
2k
3k
0.7k
2k
0.8k
3k
2k
4k
2k
2k
2k
2k
2k
3k
3k
3k
3k
4k
3k
3k
0k
2k
2k
0k
3k
2k
3k
1k
2k
2k
3k
3k
3k
3k
5k
3k
3k
3k
4k
3k
5k
4k
4k
4k
4k
1k
2k
2k
2k
2k
2k
2k
1k
2k
3k
3k
3k
3k
3k
2k
3k
4k
2k
2k
3k
5k
3k
3k
3k
4k
3k
3k
2k
3k
5k
4k
3k
4k
4k
2k
3k
3k
1k
3k
4k
4k
2k
2k
2k
3k
2k
4k
2k
4k
2k
4k
1k
2k
1k
2k
2k
1k
2k
2k
2k
2k
2k
2k
1k
1k
4k
3k
2k
2k
3k
3k
6k
2k
8k
3k
7k
2k
3k
3k
4k
3k
5k
4k
3k
3k
2k
2k
3k
3k
2k
2k
2k
3k
2k
6k
4k
4k
4k
4k
3k
3k
2k
4k
2k
3k
3k
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
0k
返回前端 - HTML5栏目
作者:
贺及楼
成为作者
更新日期:2025-02-27 18:02:29
在前端开发中,布局是构建网页结构的关键环节。传统的布局方式如浮动(float)、定位(position)和弹性布局(Flexbox)都有各自的优势,但也存在一定的局限性。HTML5 引入的网格布局(Grid Layout)为我们提供了一种更强大、更灵活的布局解决方案,能够轻松应对复杂的网页布局需求。
Grid 布局是一种二维布局模型,它将网页划分为行和列组成的网格容器,然后可以将子元素放置在这些网格单元格中。与 Flexbox 不同,Flexbox 是一维布局(只能在一个方向上进行排列,要么是水平方向,要么是垂直方向),而 Grid 布局可以同时在水平和垂直方向上进行元素的排列和定位,这使得它在处理复杂布局时更加得心应手。
在学习 Grid 布局之前,我们需要了解一些基本概念:
display: grid
或 display: inline-grid
创建的元素,它是所有网格项的父元素。要使用 Grid 布局,首先需要创建一个网格容器。可以通过设置元素的 display
属性为 grid
或 inline-grid
来实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.grid-container {
display: grid;
/* 为了更好地展示,添加一些样式 */
border: 1px solid #ccc;
padding: 10px;
}
.grid-item {
background-color: #f0f0f0;
border: 1px solid #999;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
</body>
</html>
在上述代码中,我们创建了一个 div
元素,并将其 display
属性设置为 grid
,使其成为一个网格容器。容器内有三个子元素,它们成为网格项。由于我们还没有指定网格的行和列,这些网格项会默认堆叠在一起。
通过 grid-template-columns
和 grid-template-rows
属性可以定义网格的列轨道和行轨道:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.grid-container {
display: grid;
grid-template-columns: 100px 200px;
grid-template-rows: 50px 100px;
border: 1px solid #ccc;
padding: 10px;
}
.grid-item {
background-color: #f0f0f0;
border: 1px solid #999;
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
</div>
</body>
</html>
在这个例子中,grid-template-columns: 100px 200px
定义了两列,第一列宽度为 100px,第二列宽度为 200px;grid-template-rows: 50px 100px
定义了两行,第一行高度为 50px,第二行高度为 100px。网格项会按照顺序依次填充到这些网格单元格中。
可以使用 grid-column
和 grid-row
属性来指定网格项在网格中的位置:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.grid-container {
display: grid;
grid-template-columns: 100px 100px 100px;
grid-template-rows: 100px 100px;
border: 1px solid #ccc;
padding: 10px;
}
.grid-item {
background-color: #f0f0f0;
border: 1px solid #999;
padding: 20px;
text-align: center;
}
.item1 {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item item1">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
</div>
</body>
</html>
在这个例子中,grid-column: 1 / 3
表示该网格项从第 1 条列网格线开始,到第 3 条列网格线结束,即跨越两列;grid-row: 1 / 2
表示该网格项从第 1 条行网格线开始,到第 2 条行网格线结束,即占据一行。
Grid 布局为前端开发者提供了一种强大而灵活的布局方式,能够轻松应对各种复杂的网页布局需求。以下是 Grid 布局的一些关键属性总结:
| 属性 | 描述 |
| —— | —— |
| display: grid
或 display: inline-grid
| 创建网格容器 |
| grid-template-columns
| 定义网格的列轨道 |
| grid-template-rows
| 定义网格的行轨道 |
| grid-column
| 指定网格项在列方向上的位置和跨度 |
| grid-row
| 指定网格项在行方向上的位置和跨度 |
通过掌握这些基本概念和属性,你就可以开始使用 Grid 布局来构建更加复杂和美观的网页布局了。在实际开发中,还可以结合其他 CSS 属性和技术,进一步优化和扩展 Grid 布局的功能。
希望这篇文章能帮助你快速了解和掌握 HTML5 的 Grid 布局技术!
前端 - HTML5
整章节共240节
快分享给你的小伙伴吧 ~