示例一
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid布局</title>
</head>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
background-color: #f6f6f6;
}
.headTitle {
text-align: center;
padding: 30px 0;
font-size: 26px;
color: #555;
}
.layout {
min-height: 500px;
background-color: #fff;
border-radius: 10px;
margin: 0 auto;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
padding: 30px;
}
.flex .box {
width: 300px;
height: 200px;
background-color: #7c9fb0;
border-radius: 8px;
padding: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-bottom: 40px;
}
.flex {
width: 1400px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.grid {
width: 80%;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-template-rows: 1fr 1fr;
gap:40px
;
}
.grid .box {
background-color: #7c9fb0;
border-radius: 8px;
padding: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.gridbilibli {
width: 1400px;
display: grid;
grid-template-columns: repeat(5,1fr);
gap: 40px;
}
.gridbilibli .box {
background-color: #7c9fb0;
border-radius: 8px;
padding: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.gridbilibli .box:nth-child(1) {
grid-column: span 2;
grid-row: span 2;
}
</style>
<body>
<div class="headTitle">flex布局(最后一行要么都居中要么都居左,不合适,除非数量固定)</div>
<div class="layout flex">
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
</div>
<div class="headTitle">Grid(推荐的布局使用)</div>
<div class="layout grid">
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
<div class="box">box方块</div>
</div>
<div class="headTitle">Grid(仿bilibili)</div>
<div class="layout gridbilibli">
<div class="box">box方块1</div>
<div class="box">box方块2</div>
<div class="box">box方块3</div>
<div class="box">box方块4</div>
<div class="box">box方块5</div>
<div class="box">box方块6</div>
<div class="box">box方块7</div>
<div class="box">box方块8</div>
<div class="box">box方块9</div>
<div class="box">box方块10</div>
<div class="box">box方块11</div>
<div class="box">box方块12</div>
</div>
</body>
</html>
示例二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Layout Example</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
padding: 20px;
}
.grid-container {
display: grid;
gap: 10px;
border: 1px solid #ccc;
padding: 10px;
width: 100%;
max-width: 600px;
}
.grid-item {
background-color: #f0f0f0;
padding: 10px;
text-align: center;
border: 1px solid #ddd;
}
.single-row {
grid-template-columns: repeat(4, 1fr);
}
.single-column {
grid-template-rows: repeat(4, 1fr);
}
.multi-row-column {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
}
.auto-fit {
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}
.gap {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 20px;
}
.align-items {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
align-items: center;
justify-items: center;
}
</style>
</head>
<body>
<div class="grid-container single-row">
<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>
<div class="grid-container single-column">
<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>
<div class="grid-container multi-row-column">
<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 class="grid-item">5</div>
<div class="grid-item">6</div>
</div>
<div class="grid-container auto-fit">
<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 class="grid-item">5</div>
<div class="grid-item">6</div>
</div>
<div class="grid-container gap">
<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 class="grid-item">5</div>
<div class="grid-item">6</div>
</div>
<div class="grid-container align-items">
<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 class="grid-item">5</div>
<div class="grid-item">6</div>
</div>
</body>
</html>
示例三
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Layout Example</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
}
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(3, 1fr);
gap: 10px;
width: 300px;
height: 300px;
background-color: #fff;
border: 1px solid #ccc;
padding: 10px;
}
.grid-item {
background-color: #f0f0f0;
padding: 10px;
text-align: center;
border: 1px solid #ddd;
}
.item1 {
grid-column: 1 / 3;
grid-row: 1 / 3;
}
.item2 {
grid-column: 3 / 4;
grid-row: 1 / 2;
}
.item3 {
grid-column: 3 / 4;
grid-row: 2 / 3;
}
.item4 {
grid-column: 1 / 2;
grid-row: 3 / 4;
}
.item5 {
grid-column: 2 / 3;
grid-row: 3 / 4;
}
.item6 {
grid-column: 3 / 4;
grid-row: 3 / 4;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item item1">1 (占两列两行)</div>
<div class="grid-item item2">2 (占一列一行)</div>
<div class="grid-item item3">3 (占一列一行)</div>
<div class="grid-item item4">4 (占一列一行)</div>
<div class="grid-item item5">5 (占一列一行)</div>
<div class="grid-item item6">6 (占一列一行)</div>
</div>
</body>
</html>