批改状态:合格
老师批语:grid现在的兼容性已经很好了, 只要不太古老的浏览器都没问题
介绍:
/* 创建grid容器 */display: grid;
代码:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>创建grid容器</title><style>.container {/* 容器大小 */width: 500px;height: 500px;/* 背景颜色 */background-color: wheat;/* 创建grid容器 */display: grid;/* 设置项目在网格中的填充方案, 默认行优先 */grid-auto-flow: row;/* grid-auto-flow: column; 这个是列优先*//* 显式地划分行与列, 三列二行 *//* grid-template网格模板columns列 值 第一列 第二列 第三列*/grid-template-columns: 100px 100px 100px;/* grid-template网格模板rows行 值 第一行 第二行*/grid-template-rows: 100px 100px 100px;/* 对于放置不下的项目,会隐式生成单元格 */grid-auto-rows: auto; /*默认*/grid-auto-rows: 150px; /*自定义放不下的项目*/}.item {/* 背景颜色 */background-color: lightblue;/* 文字2倍大 */font-size: 2rem;}</style></head><body><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item4">4</div><div class="item item5">5</div><div class="item item6">6</div><div class="item item7">7</div><div class="item item7">8</div><div class="item item7">9</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>设置单元格的数量与大小</title><style>.container {/* 容器大小 */width: 400px;height: 400px;background-color: wheat;/* 创建grid容器 */display: grid;/* 固定值 *//* grid-template网格模板columns列 值 第一列 第二列 第三列*/grid-template-columns: 100px 100px 100px;/* grid-template网格模板rows行 值 第一行 第二行*/grid-template-rows: 100px 100px 100px;/* 百分比 第一列用百分之20 第二列用百分之30 第三列自动*/grid-template-columns: 20% 30% auto;/* 高度设置 第一行100 第2行自动 第三行100 */grid-template-rows: 100px auto 100px;/* 比例 1fr 等于一比一 每行每列都一样宽或者高*/grid-template-columns: 1fr 2fr 2fr;grid-template-rows: 1fr auto 2fr;/* 重复设置 *//* repeat(显示几个, 定义的值); */grid-template-columns: repeat(3, 100px);/* repeat(显示几个, 定义的值); */grid-template-rows: repeat(3, 100px);/* 按分组来设置: (50px-100px) repeat(重复次数, 这里为一个组的值第一列50px 第二列100px);*//* 会生成4列 50px 100px 50px 100px */grid-template-columns: repeat(2, 50px 100px);/* 弹性 *//* repeat(重复次数, minmax(最小值50px, 最大值100px)); */grid-template-columns: repeat(2, minmax(50px, 100px));/* 这里是设置高度 repeat(重复次数, minmax(最小150px, 1fr));*/grid-template-rows: repeat(3, minmax(150px, 1fr));/* 自动填充 *//* repeat(从左到右auto-fill, 宽度120px); */grid-template-columns: repeat(auto-fill, 50px);/*行 repeat(从左到右auto-fill, 宽度120px); */grid-template-rows: repeat(auto-fill, 50px);}.item {background-color: lightblue;font-size: 2rem;}</style></head><body><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item4">4</div><div class="item item5">5</div><div class="item item6">6</div><div class="item item7">7</div><div class="item item7">8</div><div class="item item7">9</div></div></body></html>
效果:
/* 选中起始行 第一行起 */grid-row-start: 1;/* 选中结束行 第三行 */grid-row-end: 3;/* 选中起始列 第一行起 */grid-column-start: 1;/* 选中结束列 第三行 */grid-column-end: 3;代码:
/* 简写 起始行 结束行 */grid-row: 1 / 3;/* 简写 起始列 结束列 */grid-column: 3 / 5;
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>使用默认的网格线来划分单元格</title><style>.container {/* 容器大小 */width: 400px;height: 400px;background-color: wheat;/* 创建grid容器 */display: grid;/* repeat(生成四个列4, 按比例1fr); */grid-template-columns: repeat(4, 1fr);/* repeat(生成四个行4, 按比例1fr); */grid-template-rows: repeat(4, 1fr);}.item {font-size: 2rem;}/* 选中第一个 将第一个占据4个单元格 */.item.item1 {background-color: lightgreen;/* 选中起始行 第一行起 */grid-row-start: 1;/* 选中结束行 第三行 */grid-row-end: 3;/* 选中起始列 第一行起 */grid-column-start: 1;/* 选中结束列 第三行 */grid-column-end: 3;/* 按反向选择 放最后grid-row-start: -1;grid-row-end: -3;grid-column-start: -1;grid-column-end: -3; *//* 放到中间grid-row-start: 2;grid-row-end: 4;grid-column-start: 2;grid-column-end: 4;选择全部占据 结尾可以选择负-1 代表最后grid-row-start: 1;grid-row-end: -1;grid-column-start: 1;grid-column-end: -1; */}/* 选中第二个 简写 */.item.item2 {background-color: lightpink;/* 简写 起始行 结束行 */grid-row: 1 / 3;/* 简写 起始列 结束列 */grid-column: 3 / 5;}/* 选中第三个 使用偏移量来简化, 将第三个移动到左下角 */.item.item3 {background-color: yellow;/*行 span表示跨越 span2 表示跨越2行 */grid-row: 3 / span 2;/*列 span表示跨越 span2 表示跨越2行 */grid-column: 1 / span 2;}/* 选中4 */.item.item4 {background-color: lightgrey;/* 行 直接跨越2行grid-row-end: 3; */grid-row-end: span 2;/*列 直接跨越2列grid-column-end: 3; */grid-column-end: span 2;}</style></head><body><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item4">4</div></div></body></html>练习代码:.item.item1 {background-color: lightgreen;/* 选中起始行 第一行起 */grid-row-start: 1;/* 选中结束行 第三行 */grid-row-end: -1;/* 选中起始列 第一行起 */grid-column-start: 1;/* 选中结束列 第三行 */grid-column-end: 2;.item.item2 {background-color: lightpink;/* 简写 起始行 结束行 */grid-row: 1 / 2;/* 简写 起始列 结束列 */grid-column: 2 / span 3;}/* 选中第三个 使用偏移量来简化, 将第三个移动到左下角 */.item.item3 {background-color: yellow;/*行 span表示跨越 span2 表示跨越2行 */grid-row: 2 / -1;/*列 span表示跨越 span2 表示跨越2行 */grid-column: 1 / span -1;
练习效果:
命名方法介绍:
/* [c1代表第一列-start代表起始线] [c1第一列-end第一列结束县 c2第二列-start第二列起始] ... */grid-template-columns: [c1-start] 100px [c1-end c2-start] 100px [c2-end c3-start] 100px [c3-end];/* [c1代表第一行-start代表起始线] [c1第一行-end第一行结束县 c2第二行-start第二行起始] ... */grid-template-rows: [r1-start] 100px [r1-end r2-start] 100px [r2-end r3-start] 100px [r3-end];
代码:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>使用命名网格线来划分单元格</title><style>.container {/* 容器大小 */width: 400px;height: 400px;background-color: wheat;/* 创建grid容器 */display: grid;/* [c1代表第一列-start代表起始线] [c1第一列-end第一列结束县 c2第二列-start第二列起始] ... */grid-template-columns: [c1-start] 100px [c1-end c2-start] 100px [c2-end c3-start] 100px [c3-end];/* [c1代表第一行-start代表起始线] [c1第一行-end第一行结束县 c2第二行-start第二行起始] ... */grid-template-rows: [r1-start] 100px [r1-end r2-start] 100px [r2-end r3-start] 100px [r3-end];}.item {font-size: 2rem;}.item.item1 {background-color: lightgreen;/* 默认就是跨越一行/一列,所以可以省略 *//* 开始行 第一行开始 第二行结束*/grid-row-start: span 4;/* 开始列 第三列开始*/grid-column-start: span 1;}/* 简写 */.item.item2 {background-color: lightpink;grid-column-start: 2;/* grid-column: c1-start / c3-end; *//* 直接跨越三行 */grid-column-end: span 3;}/* 使用偏移量来简化, 将第三个移动到左下角 */.item.item3 {background-color: yellow;/* 跨越2行 */grid-row-end: span 2;/* 跨越2列 */grid-column-end: span 2;}.item.item4 {background-color: lightgrey;}</style></head><body><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item3">3</div><div class="item item4">4</div></div></body></html>
练习效果:
练习代码:
.item.item1 {background-color: lightgreen;grid-area: span 4 / span 4;.item.item2 {background-color: lightpink;grid-area: span 1 / span 4;}}
效果:
代码:
.container {/* 容器大小 */width: 400px;height: 400px;background-color: wheat;/* 创建grid容器 */display: grid;/* 第一列80 第二列自动计算 第三列80 */grid-template-columns: 80px 1fr 80px;/* 第一行40 第二行自动计算 第三行40 */grid-template-rows: 40px 1fr 40px;/* 设置命名网格区域, 相同名称的命名区域会合并 */grid-template-areas:"hello hello hello""left main right""footer footer footer";}
代码:
grid-template-areas:"hello hello hello"". . . ""footer footer footer";
效果:
代码:
.item.item1 {background-color: lightgreen;grid-area: header-start / header-start / header-end / header-end;}/* 简写 */.item.item2 {background-color: lightpink;/* 多余 *//* grid-area: left; */}/* 使用偏移量来简化, 将第三个移动到左下角 */.item.item3 {background-color: yellow;/* grid-area: main; */}.item.item4 {background-color: lightgrey;grid-area: footer-start / footer-start / footer-end / footer-end;
效果:
/* 水平方向对齐 */justify-content: end;/* 垂直方向对齐 */align-content: end;/* center居中 */justify-content: center;align-content: center;/* 水平方向两端对齐space-between; */justify-content: space-between;/* 水平方向分散对齐space-around */justify-content: space-around;/* 水平方向平行对齐space-evenly */justify-content: space-evenly;/* 纵向两端对齐space-between */align-content: space-between;/* 纵向分散对齐space-around; */align-content: space-around;/* 纵向平行对齐space-evenly; */align-content: space-evenly;/* place-content: 垂直对齐 水平对齐; */place-content: center start;

介绍:
/ 水平平设置靠左 /
justify-items: stretch;
/ 垂直方向 /
align-items: stretch;
/ 水平靠左 /
justify-items: start;
/ 垂直居中 /
align-items: center;
/ 水平居中 /
justify-items: center;
/ 垂直居中 /
align-items: center;
常用的:
/* z直接设置全部居中 */place-items: center;
效果
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号