<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
/* 网格布局 */
/* 创建网格 */
.box {
/* 网格布局 */
display: grid;
grid-template-columns: repeat(3, 100px);
grid-template-rows: 100px 100px 100px;
width: 320px;
height: 320px;
border: 1px solid #9d2626;
margin: 20px;
}
.box div {
background-color: pink;
border: 1px solid #000000;
}
/* 对齐方式 */
.box1 {
/* 对齐方式 */
/* 1. flex-start:左对齐 ABC----
2. flex-end:右对齐 ----ABC
3. center:居中对齐 --ABC--
4. space-between:项目之间等间距对齐 A--B--C--D
5. space-around:项目之间等间距对齐,项目与边框距离相等 -A--B--C-
6. space-evenly:项目等间距对齐,项目与边框距离相等 --A--B--C--*/
justify-content: space-between;
align-content: center;
}
/* 如果想做延申的盒子 */
/* 1.不要设置行轨道数量 */
/* 2.给子盒子设置高度 */
.content {
display: grid;
grid-template-columns: repeat(5, 160px);
width: 1000px;
margin: 0 auto;
border: 1px solid #9d2626;
justify-content: space-between;
}
.content div {
height: 100px;
background-color: pink;
margin-bottom: 20px;
}
/* fr单位 */
.box2 {
/* fr网格布局 */
/* 1fr表示占一份 */
display: grid;
/* repeat写法 */
/* repeat(3, 1fr); */
grid-template-columns: repeat(3, 1fr);
grid-template-rows: 1fr 2fr 1fr;
width: 320px;
height: 320px;
border: 1px solid #9d2626;
margin: 20px;
}
.box2 div {
background-color: pink;
border: 1px solid #000000;
border-radius: 10px;
}
/* gap函数 */
.box2 {
/* gap函数 */
/* gap: 20px; 上下左右间距为20px */
/* gap: 20px 40px; 上下间距为20px,左右间距为40px */
gap: 20px;
}
/* 响应式写法 */
.box3 {
display: grid;
/* 响应式写法 */
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
/* 属性:auto-fit,自动适应,如果内容不足网格大小会填满整行;
auto-fill,不会自动填充,根据内容自适应列数 */
width: 80%;
margin: 20px auto;
border: 1px solid #9d2626;
height: 300px;
}
.box3 div {
background-color: pink;
height: 120px;
}
/* 网格线 */
/* 语法1:grid-columns: 1/3; */
/* 语法2:grid-columns: 1/span 2; */
.box4 {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 10px;
border: 1px solid #9d2626;
}
.box4 div {
background-color: pink;
height: 120px;
}
.box4 .item:first-child {
/* 第一个项目占满两列两行 */
grid-column: 1/3;
grid-row: 1/span 2;
/* 注意:原本盒子有高度,无法填满
第一个项目需要设置自适应高度 */
height: auto;
}
/* 网格填充方式 */
.box5 {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
width: 500px;
border: 1px solid #9d2626;
grid-auto-flow: column;
}
.box5 div {
background-color: pink;
height: 120px;
}
.box5 div:first-child {
grid-row: 1/span 2;
height: auto;
}
.box5 div:nth-child(3) {
grid-row: 2/3;
grid-column: 2/span 2;
}
/* object-fit */
.box6 div img {
/* 属性:object-fit */
/* 1. cover:图片等比例缩放,填充父盒子,可能会被裁剪 */
/* 2. contain:图片保持长宽比等比例缩放,不会被裁剪,可能会有空白区域 */
/* 3. fill:默认值,图片拉伸,不保持长宽比,会形变 */
object-fit: cover;
/* 属性:object-position */
/* 用于配合object-fit属性使用 */
/* 1. center:居中对齐 */
/* 2. top:顶部对齐 */
/* 3. bottom:底部对齐 */
/* 4. left:左侧对齐 */
/* 5. right:右侧对齐 */
object-position: top left;
width: 100%;
height: 100%;
}
.box6 {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
width: 60%;
border: 1px solid #9d2626;
grid-auto-flow: column;
}
.box6 div {
background-color: pink;
height: 120px;
}
.box6 div:first-child {
grid-row: 1/span 2;
height: auto;
}
.box6 div:nth-child(3) {
grid-row: 2/3;
grid-column: 2/span 2;
}
/* 项目对齐方式 */
/* 控制单元格里的子元素对齐 */
/* justify-items: stretch;
align-items-items: stretch; 默认值,拉伸填满整个网格单元格 */
/* 属性: */
/* 1. center:居中对齐 */
/* 2. start:左侧对齐 */
/* 3. end:右侧对齐 */
/* 4. stretch:默认值,拉伸 */
.box7 {
/* 项目对齐方式 */
justify-items: center;
align-items: center;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
width: 350px;
height: 350px;
border: 1px solid #9d2626;
margin: 20px;
}
.box7 div {
background-color: pink;
height: 60px;
width: 60px;
}
</style>
</head>
<body>
<div class="box box1">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
<div class="item7">7</div>
<div class="item8">8</div>
<div class="item9">9</div>
</div>
<br>
<div class="content">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>
<div>16</div>
<div>17</div>
</div>
<br>
<div class="box2">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
<div class="item7">7</div>
<div class="item8">8</div>
<div class="item9">9</div>
</div>
<br>
<div class="box3">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
<div class="item7">7</div>
<div class="item8">8</div>
<div class="item9">9</div>
</div>
<br>
<div class="box4">
<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 class="item">10</div>
<div class="item">11</div>
<div class="item">12</div>
</div>
<br>
<div class="box5">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
<br>
<div class="box6">
<div class="item"><img src="./上箭头.jpg" alt=""></div>
<div class="item"><img src="./背景.png" alt=""></div>
<div class="item"><img src="./下箭头.jpg" alt=""></div>
<div class="item"><img src="./背景.png" alt=""></div>
</div>
<br>
<div class="box7">
<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>
下载链接: