Blogger Information
Blog 14
fans 0
comment 2
visits 12657
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
grid 布局一个课程列表
JKY辉哥
Original
740 people have browsed it

1. grid 布局要实现课程列表,效果图如下

gird

2. html & css 代码结

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>0628作业:放php.cn课程列表</title>
  7. <style>
  8. * {
  9. margin: 0;
  10. padding: 0;
  11. box-sizing: border-box;
  12. }
  13. a {
  14. text-decoration: none;
  15. font-size: 14px;
  16. color: #666;
  17. }
  18. /* 大容器 */
  19. .courses-list {
  20. width: 1200px;
  21. height: 646px;
  22. display: grid;
  23. margin: auto;
  24. }
  25. /* 课程大标题 */
  26. .courses-list > .course-title {
  27. color: #555;
  28. text-align: center;
  29. height: 60px;
  30. line-height: 60px;
  31. }
  32. /* 课程列表 */
  33. .courses-list > .container {
  34. display: grid;
  35. grid-template-columns: repeat(5, 1fr);
  36. grid-template-rows: repeat(3, 1fr);
  37. }
  38. .courses-list > .container > .course {
  39. width: 217px;
  40. height: 166px;
  41. /* background-color: violet; */
  42. border-radius: 5%;
  43. box-shadow: 0 0 10px #888;
  44. place-self: start center;
  45. }
  46. .courses-list > .container > .course.first {
  47. grid-row: span 2;
  48. height: 362px;
  49. }
  50. /* 课程图片 */
  51. .courses-list > .container > .course img {
  52. width: 100%;
  53. border-radius: 5%;
  54. }
  55. .courses-list > .container > .course .desc {
  56. display: grid;
  57. place-content: space-between;
  58. min-height: 84px;
  59. background-color: white;
  60. border-radius: 5%;
  61. padding: 10px;
  62. position: relative;
  63. top: -42px;
  64. }
  65. .courses-list > .container > .course .desc span {
  66. color: #555;
  67. font-size: smaller;
  68. }
  69. .courses-list > .container > .course .desc a span {
  70. background-color: #939999;
  71. color: white;
  72. padding: 1px;
  73. border-radius: 2px;
  74. }
  75. .courses-list > .container > .course .desc:hover {
  76. min-height: 130px;
  77. position: relative;
  78. cursor: pointer;
  79. top: -90px;
  80. /* 添加css过度效果 */
  81. transition: top 0.5s;
  82. }
  83. </style>
  84. </head>
  85. <body>
  86. <div class="courses-list">
  87. <h3 class="course-title">PHP入门精品课程</h3>
  88. <!-- 课程列表,用grid布局 -->
  89. <div class="container">
  90. <div class="course first">
  91. <a href=""><img src="img/first.jpg" alt="" /></a>
  92. </div>
  93. <div class="course">
  94. <a href=""><img src="img/img01.png" alt="" /></a>
  95. <div class="desc">
  96. <a href=""><span>30分钟</span>学会布局网站布局</a>
  97. <span>6W+播放</span>
  98. </div>
  99. </div>
  100. <div class="course">
  101. <a href=""><img src="img/img02.jpg" alt="" /></a>
  102. <div class="desc">
  103. <a href=""><span>30分钟</span>学会布局网站布局</a>
  104. <span>6W+播放</span>
  105. </div>
  106. </div>
  107. <div class="course">
  108. <a href=""><img src="img/img03.jpg" alt="" /></a>
  109. <div class="desc">
  110. <a href=""><span>30分钟</span>学会布局网站布局</a>
  111. <span>6W+播放</span>
  112. </div>
  113. </div>
  114. <div class="course">
  115. <a href=""><img src="img/img04.jpg" alt="" /></a>
  116. <div class="desc">
  117. <a href=""><span>30分钟</span>学会布局网站布局</a>
  118. <span>6W+播放</span>
  119. </div>
  120. </div>
  121. <div class="course">
  122. <a href=""><img src="img/img05.jpg" alt="" /></a>
  123. <div class="desc">
  124. <a href=""><span>30分钟</span>学会布局网站布局</a>
  125. <span>6W+播放</span>
  126. </div>
  127. </div>
  128. <div class="course">
  129. <a href=""><img src="img/img06.jpeg" alt="" /></a>
  130. <div class="desc">
  131. <a href=""><span>30分钟</span>学会布局网站布局</a>
  132. <span>6W+播放</span>
  133. </div>
  134. </div>
  135. <div class="course">
  136. <a href=""><img src="img/img07.jpg" alt="" /></a>
  137. <div class="desc">
  138. <a href=""><span>30分钟</span>学会布局网站布局</a>
  139. <span>6W+播放</span>
  140. </div>
  141. </div>
  142. <div class="course">
  143. <a href=""><img src="img/img08.jpg" alt="" /></a>
  144. <div class="desc">
  145. <a href=""><span>30分钟</span>学会布局网站布局</a>
  146. <span>6W+播放</span>
  147. </div>
  148. </div>
  149. <div class="course">
  150. <a href=""><img src="img/img09.jpg" alt="" /></a>
  151. <div class="desc">
  152. <a href=""><span>30分钟</span>学会布局网站布局</a>
  153. <span>6W+播放</span>
  154. </div>
  155. </div>
  156. <div class="course">
  157. <a href=""><img src="img/img10.jpg" alt="" /></a>
  158. <div class="desc">
  159. <a href=""><span>30分钟</span>学会布局网站布局</a>
  160. <span>6W+播放</span>
  161. </div>
  162. </div>
  163. <div class="course">
  164. <a href=""><img src="img/img11.jpg" alt="" /></a>
  165. <div class="desc">
  166. <a href=""><span>30分钟</span>学会布局网站布局</a>
  167. <span>6W+播放</span>
  168. </div>
  169. </div>
  170. <div class="course">
  171. <a href=""><img src="img/img12.jpg" alt="" /></a>
  172. <div class="desc">
  173. <a href=""><span>30分钟</span>学会布局网站布局</a>
  174. <span>6W+播放</span>
  175. </div>
  176. </div>
  177. <div class="course">
  178. <a href=""><img src="img/img13.jpg" alt="" /></a>
  179. <div class="desc">
  180. <a href=""><span>30分钟</span>学会布局网站布局</a>
  181. <span>6W+播放</span>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. </body>
  187. </html>

运行效果图courses

3. 总结

  • 3.1 基本术语
    • 容器: 使用网格布局的元素
    • 项目: 容器中的子元素
    • 网格线: 将容器划分为行与列的直线
    • 显式网络: 由用户根据项目数量指示容器生成的网格
    • 隐式网格: 由容器根据项目数量自动生成的网格
    • 单元格: 项目放置的具体空间
    • 网格区域: 一个以上的单元格组成的矩形区域
  • 3.2 常用属性

    1. /** 定义网格布局 ** /
    2. display: grid;
    3. /*设置5列*/
    4. grid-template-columns: 100px 100px 100px 100px 100px;
    5. /*简写 */
    6. grid-template-columns: repeat(5, 100px);
    7. / *设置3 */
    8. grid-template-rows: 100px 100px 100px;
    9. /*简写*/
    10. grid-template-rows: repeat(3, 100px);
  1. .container > .item:first-of-type {
  2. background-color: lightcoral;
  3. /*
  4. grid-column-start: 1;
  5. grid-column-end: 2;
  6. grid-row-start: 1;
  7. grid-row-end: 2; */
  8. /* grid-column-start: 3;
  9. grid-column-end: 4;
  10. grid-row-start: 2;
  11. grid-row-end: 3; */
  12. /* 默认总是跨一行或一列 */
  13. /* grid-column-start: 3;
  14. grid-row-start: 2; */
  15. /* 将项目放置到一个网格区域中,网格区域只能是矩形区域 */
  16. /* grid-column-start: 2;
  17. grid-column-end: 4;
  18. grid-row-start: 2;
  19. grid-row-end: 4; */
  20. /* 行与列的跨越 */
  21. /* grid-column-start: 2;
  22. grid-column-end: span 2;
  23. grid-row-start: 2;
  24. grid-row-end: span 2; */
  25. /* 简化 */
  26. /* grid-column: 起始列号 / 结束列号;
  27. grid-row: 起始行号 / 结束行号 */
  28. /* grid-column: 2 / 4;
  29. grid-row: 2 / 4; */
  30. /* 跨越行和列简写 */
  31. /* grid-column: 2 / 4;
  32. grid-row: 2 / span 2; */
  33. /* 跨越整行 */
  34. /* grid-column: 1 / 4; */
  35. /* grid-column: 1 / span 3; */
  36. /* grid-column: 2 / 4; */
  37. /* grid-column: -1 / -3; */
  38. /* 充满整个容器 */
  39. /* grid-column: 1 / span 3;
  40. grid-row: 1 / span 3; */
  41. /* 根据项目的当前默认位置进行简化 */
  42. /* grid-column: span 3;
  43. grid-row: span 3; */
  44. /* 想写得更加的直观 */
  45. /* grid-column-start: 1; */
  46. grid-column-end: span 3;
  47. /* grid-row-start: 1; */
  48. grid-row-end: span 3;
  49. /*项目在grid容器中的对齐方案*/
  50. /* 当容器在存在剩余空间的时候,才有意义 */
  51. /* place-content: 垂直方向对齐方式 水平方向对齐方式; */
  52. /* 剩余空间分配方案1: 在顶部和左侧进行分配,简单的理解为二边分配 */
  53. /* 垂直居中, 水平居左 */
  54. /* place-content: center start; */
  55. /* 垂直居上, 水平居中 */
  56. /* place-content: start center; */
  57. /* 垂直,水平全部居中 */
  58. /* place-content: center center; */
  59. /* 垂直,水平全部居中 简写 */
  60. place-content: center;
  61. /* 剩余空间分配方案2: 在每个单元格之间进行分配 */
  62. /* 垂直方向二端对齐, 水平分散对齐 */
  63. place-content: space-between space-around;
  64. /* 垂直分散对齐,水平平均对齐 */
  65. place-content: space-around space-evenly;
  66. /*项目在 grid 单元格中的对齐方案*/
  67. /* place-items: 垂直对齐方式 水平对齐方式; */
  68. /* 项目在grid单元格中的对齐方案 */
  69. /* place-items: 垂直对齐方式 水平对齐方式; */
  70. place-items: strech;
  71. /* 关键字 */
  72. /* place-items: auto;
  73. place-items: normal; */
  74. /* 垂直居中,水平居左 */
  75. /* place-items: center start; */
  76. /* 垂直,水平都居中 */
  77. /* place-items: center center; */
  78. place-items: center;
  79. /* 垂直居中,水平拉伸,单元格不能定义宽度,不然看不到效果*/
  80. place-items: center stretch;
  81. /*项目在 grid 网格区域中的对齐方案/
  82. /* 网格区域,就是一个或多个单元格组成的矩形空间 */
  83. grid-template-columns: repeat(3, 1fr);
  84. grid-template-rows: repeat(3, 1fr);
  85. /* 单元格垂直水平居中整体对齐 */
  86. place-items: center;
  87. /* 设置行列间隙 */
  88. /* row-gap: 5px;
  89. column-gap: 5px; */
  90. /* 行列相等 简写 */
  91. /* gap: 5px; */
  92. /* 行10px 列5px */
  93. /* gap:行间距 列间距 */
  94. gap: 10px 5px;
Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:很好!Grid 是一个非常强大的 CSS 布局方案,可以任意组合不同的网格,做出各种各样的布局!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post