九宫格布局在前端开发中是一个非常常见的需求,实现方式也多种多样。以下列出几种常用的方法,并附带代码示例:
1. Flexbox 布局:
Flexbox 是现代 CSS 布局中最灵活和强大的工具之一,非常适合实现九宫格布局。
<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Flexbox</title>
<style>
.container {
display: flex;
flex-wrap: wrap;
width: 300px; /* 调整容器宽度 */
height: 300px; /* 调整容器高度 */
}
.item {
width: 100px; /* 每个格子的宽度 */
height: 100px; /* 每个格子的高度 */
background-color: #eee;
border: 1px solid #ccc;
box-sizing: border-box; /* 包含边框在宽度内 */
display: flex; /* 让内容居中 */
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
</body>
</html>
2. Grid 布局:
Grid 布局是另一种强大的布局工具,可以更方便地创建二维布局。
<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Grid</title>
<style>
.container {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 三列,每列宽度相等 */
grid-template-rows: repeat(3, 1fr); /* 三行,每行高度相等 */
width: 300px;
height: 300px;
gap: 1px; /* 格子间隙 */
}
.item {
background-color: #eee;
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
</div>
</body>
</html>
3. 浮动布局 (Float): 虽然 Flexbox 和 Grid 是更推荐的现代方法,但浮动布局仍然可以实现九宫格,只是需要清除浮动。
<!DOCTYPE html>
<html>
<head>
<title>九宫格 - Float</title>
<style>
.container {
width: 303px; /* 考虑边框宽度 */
}
.item {
width: 100px;
height: 100px;
background-color: #eee;
border: 1px solid #ccc;
box-sizing: border-box;
float: left;
display: flex;
justify-content: center;
align-items: center;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}
</style>
</head>
<body>
<div class="container clearfix">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">
标签:flex,九宫格,center,实现,布局,width,display
From: https://www.cnblogs.com/ai888/p/18587784