博客列表 >Grid隐式布局, 对齐方式与行列间隙的使用方法

Grid隐式布局, 对齐方式与行列间隙的使用方法

逍遥php
逍遥php原创
2022年11月03日 23:46:29410浏览

Grid 布局简介

grid布局即网格布局是一种二维布局,可以同时控制行和列的排布和对齐方式,grid布局由水平线和垂直线构成,两条水平线之间的区域叫做行轨道,两条垂直线的区域叫做列轨道。

隐式网格

通用代码块

  1. <div class="container">
  2. <div class="item">item1</div>
  3. <div class="item">item2</div>
  4. <div class="item">item3</div>
  5. <div class="item">item4</div>
  6. <div class="item">item5</div>
  7. <div class="item">item6</div>
  8. <div class="item">item7</div>
  9. <div class="item">item8</div>
  10. <div class="item">item9</div>
  11. <div class="item other">item10</div>
  12. <div class="item other">item11</div>
  13. </div>

隐式网格代码细说

  1. .container {
  2. width: 300px;
  3. height: 150px;
  4. display: grid;
  5. /*
  6. grid-template-columns:设置每一列的宽度,可以是具体值,也可以是百分比
  7. grid-template-rows:设置每一行的宽度,可以是具体值,也可以是百分比
  8. */
  9. grid-template-columns: repeat(3, 1fr);
  10. grid-template-rows: repeat(3, 1fr);
  11. /* 1.项目排列规则 */
  12. grid-auto-flow: row;
  13. /* grid-auto-flow: column; */
  14. /* 2.隐式网格 */
  15. /* 多余的项目,出现在隐式网格中(自动生成) */
  16. grid-auto-rows: 50px;
  17. }
  18. .container .item {
  19. background-color: antiquewhite;
  20. }
  21. .container .item.other {
  22. background-color: violet;
  23. }
  24. /* 排列规则:gird-auto-flow:row/column 行优先/列优先
  25. 隐式网格:grid-auto-row/column
  26. */

效果图展示

对齐方式

  1. /*
  2. 1.对齐前提:必须存在"剩余空间"
  3. 2.对齐方案:"剩余空间"在"项目"之间的分配方式
  4. 3.剩余空间:flex(主轴,交叉轴),Grid(容器,单元格)
  5. Grid:剩余空间存在于"容器"或"单元格"
  6. */
  7. .container {
  8. display: grid;
  9. grid-template-columns: repeat(3, 100px);
  10. grid-template-rows: repeat(3, 100px);
  11. }
  12. .container .item {
  13. /* border: 1px solid #000; */
  14. background-color: wheat;
  15. /* width: 50px;
  16. height: 50px; */
  17. }
  18. /* 创建剩余空间 */
  19. .container {
  20. width: 450px;
  21. height: 450px;
  22. border: 1px solid #000;
  23. background-color: lightblue;
  24. /* 1.项目在"容器"中的对齐
  25. place-content:垂直方向 水平方向
  26. 默认值:垂直居中 水平居左
  27. */
  28. place-content: start start;
  29. /* 垂直居中,水平居右 */
  30. place-content: center end;
  31. /* 2.项目在"单元格"中的对齐 */
  32. /* 单元格中必须要有剩余空间,即:项目 < 单元格 */
  33. /* place-items: 垂直方向 水平方向; */
  34. place-items: start;
  35. place-items: center end;
  36. }
  37. /* 3.设置某个项目在单元格对齐方式(与众不同) */
  38. .container .item:nth-child(5) {
  39. background-color: blueviolet;
  40. place-self: end;
  41. }

效果图展示

行列间隙

  1. .container {
  2. display: grid;
  3. grid-template-columns: repeat(3, 100px);
  4. grid-template-rows: repeat(3, 100px);
  5. /* 行列间隙gap */
  6. /* gap: 垂直方向 水平方向; */
  7. gap: 5px 10px;
  8. gap: 10px;
  9. }
  10. .container .item {
  11. background-color: wheat;
  12. /* 行列间隙 */
  13. /* margin */
  14. /* 要求5px的margin */
  15. margin: 5px;
  16. }

效果图展示

总结

  1. grid 是一个 CSS 所有网格容器的简写属性,可以用来设置以下属性:
  2. 显式网格属性: grid-template-rowsgrid-template-columns grid-template-areas
  3. 隐式网格属性: grid-auto-rowsgrid-auto-columns grid-auto-flow
  4. 间距属性: grid-column-gap grid-row-gap
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议