博客列表 >网格布局:grid 容器/项目属性

网格布局:grid 容器/项目属性

Wu.Ang
Wu.Ang原创
2022年08月09日 22:22:20341浏览

网格布局:grid 容器/项目属性

步骤

  1. grid 容器
  2. 划分网格单元
  3. 将项目放到指定的网格单元

一、创建 grid 容器

  1. .container {
  2. display: grid;
  3. }

二、划分网格单元

  1. .container {
  2. display: grid;
  3. /* 创建三列,每列宽度为10em */
  4. grid-template-columns: 10em 10em 10em;
  5. /* 创建三行,每行宽度为10em */
  6. grid-template-rows: 10em 10em 10em;
  7. /* repeat(重复次数,重复的值) */
  8. grid-template-columns: repeat(3, 10em);
  9. grid-template-rows: repeat(3, 10em);
  10. /* fr: fraciton缩写, 比例/部分的意思 */
  11. grid-template-columns: repeat(3, 1fr);
  12. grid-template-rows: repeat(3, 1fr);
  13. /* 默认项目的排列方式是:行优先 */
  14. grid-auto-flow: row;
  15. grid-auto-flow: column;
  16. /* 新生成的项目,自动放入自动生成的网格项目中,并且与新单元的宽高自适应 */
  17. grid-auto-rows: 10em;
  18. /* gap: 行间距 列间距 */
  19. gap: 5px 10px;
  20. /* 对齐,容器外必须有剩余空间才能对齐 */
  21. /* 所有项目在容器中对齐 */
  22. /* place-content:垂直方式 水平方式; */
  23. place-content: start start;
  24. /* 所有剩余空间还可以在项目之间进行分配 */
  25. place-content: space-between space-around;
  26. /* place-items:;项目在网格单元中对齐 */
  27. place-items: start start;
  28. /* 如果需要设置所有项目在容器中的居中,并且所有项目还在网格单元中也居中 */
  29. place-content: center;
  30. place-items: start;
  31. }

三、将项目放到指定的格子中

  1. .container > .item {
  2. /* 默认情况下项目在左上角开始的第一个网格单元中 */
  3. grid-row-start: 1;
  4. grid-row-end: 2;
  5. grid-column-start: 1;
  6. grid-column-end: 2;
  7. /* 简化 */
  8. grid-row: 1 / 2;
  9. grid-column: 1 / 2;
  10. /* 可以自定义项目的位置 */
  11. grid-row: 2 / 3;
  12. grid-column: 2 / 3;
  13. /* 一个项目移动的最小偏移量,就是一个网格单元/单元格 */
  14. /* 所以,如果项目只占据一个单元格,可以省去结束行号 */
  15. grid-row: 2;
  16. grid-column: 2;
  17. /* 网格区域:一个或多个单元格构成,跨越多行或多列 */
  18. grid-row: 2 / 4;
  19. grid-column: 2 / 4;
  20. /* 查找结束的行/列的意义不大,只知道跨了几行几列就行了 */
  21. /* span关键字:可以指定结束行/列的数量 */
  22. grid-row: 2 / span 2;
  23. grid-column: 2 / span 2;
  24. /* grid-area: 行开始 / 列开始 / 行结束 / 列结束 直接定义网格区域 */
  25. grid-area: 2 / 2 / span 2 / span 2;
  26. }
  27. .container > .item:nth-of-type {
  28. /* 设置某个项目的对齐方式 */
  29. place-self: end;
  30. }

实例

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>grid</title>
  8. <style>
  9. /* 代码初始化 */
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body .container {
  16. width: 100%;
  17. height: 30em;
  18. border: 1px solid;
  19. display: grid;
  20. /* 创建两行五列 */
  21. grid-template-columns: repeat(5, 15em);
  22. grid-template-rows: repeat(2, 15em);
  23. /* 项目在项目中居中和网格单元中居中 */
  24. place-content: center;
  25. place-items: stretch;
  26. }
  27. body .container > .item {
  28. width: 13em;
  29. height: 12em;
  30. }
  31. body .container > .item > img {
  32. border-radius: 6px 6px 0 0;
  33. width: 100%;
  34. }
  35. body .container > .item > span {
  36. font-size: 14px;
  37. }
  38. body .container > .item > span:hover {
  39. color: red;
  40. cursor: pointer;
  41. }
  42. </style>
  43. </head>
  44. <body>
  45. <div class="container">
  46. <div class="item">
  47. <img src="img/6274cc6ae0efc579.jpg" alt="" />
  48. <span>PHP开发微信公众号平台从简到精</span>
  49. </div>
  50. <div class="item">
  51. <img src="img/6278b2ec4fa28483.jpg" alt="" />
  52. <span>PHP进阶教程之由浅入深掌握面向对象开发</span>
  53. </div>
  54. <div class="item">
  55. <img src="img/627a17e380f6e698.jpg" alt="" />
  56. <span>数据库原理及应用【一套搞定所有数据库面试】</span>
  57. </div>
  58. <div class="item">
  59. <img src="img/627e50fae9f42783.jpg" alt="" />
  60. <span>极限编程—程序员修炼之道</span>
  61. </div>
  62. <div class="item">
  63. <img src="img/6282079ba5097121.jpg" alt="" />
  64. <span>PHP上传文件—入门到实战系列必学教程</span>
  65. </div>
  66. <div class="item">
  67. <img src="img/629723b6eb410512.png" alt="" />
  68. <span>TypeScript全面解读课程</span>
  69. </div>
  70. <div class="item">
  71. <img src="img/629dc8e8356ad204.png" alt="" />
  72. <span>基于PHP7+MVC博客系统设计</span>
  73. </div>
  74. <div class="item">
  75. <img src="img/62ce7dc353d67580.png" alt="" />
  76. <span>前端HTML5+CSS3(女神版)</span>
  77. </div>
  78. <div class="item">
  79. <img src="img/62d11714236a0106.png" alt="" />
  80. <span>CodeIgniter3(CI3)基础教程(全)</span>
  81. </div>
  82. <div class="item">
  83. <img src="img/62d661fa1d3f3690.png" alt="" />
  84. <span>好课诞生记</span>
  85. </div>
  86. </div>
  87. </body>
  88. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议