批改状态:合格
老师批语:完成的不错... 如果你实在不想用markdown写作业, 或者觉得写作业是种负担, 可以在本地完成也可以, 线上学习全凭自觉.... 如果要提交作业, 就一定要严格按要求... 请理解与配合... 祝你学习快乐
px, %, fr,autogrid-template-colums: 基于列,定义网络线的名称与与轨道大小grid-template-rows: 基于行,定义网络线的名称与与轨道大小grid-template-areas: 命名网格区域(配合gird项目的grid-area属性)grid-auto-flow: 网格中项目的流动方/排列方向(默认先行后列)grid-auto-columns: 隐式网格的列宽grid-auto-rows: 隐式网格的行高grid-column-gap | grid-row-gap | grid-gap | gap: 行/列间隙justify-contens: 设置所有项目在网格容器中的水平对齐方式align-content: 设置所有项目在网格容器中的垂直对齐方式place-content: justify-content和align-content的属性简写justify-items: 设置所有项目在单元格内的水平对齐方式align-items: 设置所有项目在单元格内的垂直对齐方式place-items: justify-items和align-items的属性简写grid-column-start: 起始列编号grid-column-end: 终止列编号grid-column: 上面二属性缩写
grid-row-start: 起始行编号
grid-row-end: 终止行编号grid-row: 上面二属性编写grid-area: top/left/bottom/right: 将项目按逆时针顺序放置grid-area: area-name: 将项目放置到已命名的网格区域中 justify-self: 设置项目在单元格中的水平对齐方式align-self: 设置项目在单元格中的垂直对齐方式place-self: justify-self和align-self的属性简写
```CSS Code
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>网格区域填充与隐式网格</title><style>* :not(body) {outline: 1px dashed red;}.container {width: 600px;font-size: 2rem;`display`: grid;/* 划分网格 */`grid-template-columns`: repeat(3, 1fr);`grid-template-rows`: repeat(3, 1fr);}.container > .item:first-of-type {/* 用网格线命名来快速填充: grid-area *//* 注意顺序是顺时针: 上左下右, 与传统的上右下左的逆时针是完全相反的, 也很记忆 *//* 上:第一行线,左:第一列线,下:第二行线,右:第三列线 *//* 简单记忆: 第一个项目占据网格中的1行1列到2行3列之间的区域空间 */`grid-area`: 1/1/2/3;background-color: lightgreen;}/* 新名称: 由浏览器自动根据项目数据创建的网格空间叫: 隐式网格,对应属性是grid-auto-rows/columns */.container {/* 行的方向是可扩展的, 所有行高是有效的 */`grid-auto-rows`: 150px;/* 列在沿水平扩展,空间是有限的,以显示网格的设置为准,这里设置不必设置,设置也是无效的 *//* `grid-auto-columns`: 100px; *//* 那么什么时候这个隐式的列宽会有效呢,在项目排列顺序发生变化时,即项目流动方向不再是默认的:先行后列,而先列后行,且在水平方向有剩余空间时 *//* `grid-auto-flow`: column; */}</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></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>创建网格区域模板与项目填充</title><style>* :not(body) {outline: 1px dashed red;}.container {width: 600px;height: 300px;font-size: 2rem;display: grid;/* 给每一个单元格命名 */`grid-template-areas`:'a b c''d e f''g h i';}.container > .item:first-of-type {/* 项目命名: grid-area */grid-area: a;background-color: lightgreen;}/* 注意: 被命名的网格区域的位置, 与它在源码的书写无关 */.container > .item:nth-of-type(2) {/* 虽然它在html源码中是第二个子元素项目,但是在网格中却在第二行第二列 */grid-area: e;background-color: lightblue;}/* 单元格的合并: 相同名称的项目单元,会将所占空间进行合并,形成网络区域 */.container > .item:nth-of-type(7) {/* `grid-column-start`: 1; *//* `grid-column-end`: -1; *//* `grid-row-start`: 3; *//* `grid-row-end`: 4; *//* 以上项目填充与单元格合并操作可以简写 *//* `grid-column`: 1 / span 3; *//* 默认跨一行/列 *//* `grid-row`: 3; *//* 如果仍觉得代码太多,还可以用grid-area进一步简化 *//* 将项目填充到从3行1列开始到3行4列为止的网格区域内 *//* `grid-area` 3 / 1 / 3 / 4; *//* 也可直接指定跨越的列数 */grid-area: 3 / 1 / 3 / span 3;background-color: lightgray;}/* 但现在咱们有了一种更直观的设置方式: 命名区域 *//* 因为每一个单元格都有了一个名称, 只需要将需要合并的单元格, 起一个相同的名称即可 *//* 第一步: 将需要合并的单元格的名称, 设置为相同名称*/.container {grid-template-areas: 'a b c''d e f''g g g';}/* 第二步: 为需要占据一个或多个单元格的项目进行命名 */.container > .item:nth-of-type(7) {`grid-area`: g;background-color:wheat;}</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></body></html>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Grid网格所有项目的整体对齐方式</title><style>* :not(body) {outline: 1px dashed red;}.container {width: 600px;height: 400px;font-size: 2rem;display: grid;/* 划分网格 */grid-template-columns: repeat(3, 100px);grid-template-rows: repeat(3, 80px);`grid-gap: 10px;`/* 1. 设置所有项目在网格容器中的对齐方式*//* 水平方向 *//* 默认start */`justify-content`: start;justify-content: end;justify-content: center;/* 垂直方向 *//* 默认start */`align-content`: start;align-content: end;align-content: center;/* 简化 *//* place-content: 垂直 水平 */`place-content`: end end;/* 2. 设置所有项目在单元格内的对齐对齐 *//* 默认水平与垂直都是自动扩展/拉伸的 *//* 水平方向 */`justify-items`: stretch;justify-items: start;justify-items: end;justify-items: center;/* 垂直方向 */`align-items`: stretch;align-items: start;align-items: end;align-items: center;/* 简化 *//* place-content: 垂直 水平 */`place-items`: end center;}.container > .item {background-color: wheat;}</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>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>模拟Bootstrap/layUI等框架的12列栅格布局</title><style>.container {width: 1000px;margin: auto;}.row {display: grid;/* 平均等比分成12份 */'grid-template-columns': repeat(12, 1fr);'grid-column-gap': 8px;height: 50px;margin-bottom: 10px;background-color: #eeeeee;}.col-1 {/*起始列编号省略,则为auto, 由容器根据剩余空间自动分配*//*grid-column-start: auto;*/'grid-column-end': span 1;}.col-2 {grid-column-end: span 2;}.col-3 {grid-column-end: span 3;}.col-4 {grid-column-end: span 4;}.col-5 {grid-column-end: span 5;}.col-6 {grid-column-end: span 6;}.col-7 {grid-column-end: span 7;}.col-8 {grid-column-end: span 8;}.col-9 {grid-column-end: span 9;}.col-10 {grid-column-end: span 10;}.col-11 {grid-column-end: span 11;}.col-12 {grid-column-end: span 12;}.item {background-color: lightcyan;outline: 1px dashed red;;}</style></head><body><div class="container"><!-- 二等份 --><div class="row"><span class="item col-6">6列</span><span class="item col-6">6列</span></div><!-- 三等份 --><div class="row"><span class="item col-4">4列</span><span class="item col-4">4列</span><span class="item col-4">4列</span></div><!-- 三列 --><div class="row"><span class="item col-2">2列</span><span class="item col-8">8列</span><span class="item col-2">2列</span></div><!-- 未占满 --><div class="row"><span class="item col-3">3列</span><span class="item col-3">3列</span></div><!-- 12列 --><div class="row"><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div><div class="item col-1">1列</div></div></div></body></html>
Grid提供了类似table的布局技术,在处理复杂页面结合flex发挥更好的效果。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号