博客列表 >Grid常用的容器与项目属性 仿写PHP中文网首页:最新课程片断(也可选其它片断)

Grid常用的容器与项目属性 仿写PHP中文网首页:最新课程片断(也可选其它片断)

P粉890456325
P粉890456325原创
2023年02月14日 13:44:53308浏览

1. 实例演示Grid常用的容器与项目属性 2. 仿写PHP中文网首页:最新课程片断(也可选其它片断)

grid常用的容器与项目的属性

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>Document</title>
  8. <style>
  9. .container0 {
  10. width: 300px;
  11. height: 150px;
  12. /* 转为grid网格容器 */
  13. display: grid;
  14. /* 任务: 创建一个3行3列的容器 */
  15. /* 1. 显式网格 */
  16. /* grid-template-columns: 100px 100px 100px;
  17. grid-template-rows: 50px 50px 50px; */
  18. /* 对于相同且相邻的值,可以用repeat()简化 */
  19. /* grid-template-columns: repeat(3, 100px);
  20. grid-template-rows: repeat(3, 50px); */
  21. /* 宽度300px,分3份,每1份肯定是100px */
  22. /* 新单位: fr, 比例 */
  23. grid-template-columns: repeat(3, 1fr);
  24. grid-template-rows: repeat(3, 1fr);
  25. }
  26. /* grid容器的项目: 容器的子元素 */
  27. .container0 > .item0 {
  28. background-color: bisque;
  29. }
  30. .container0 > .item0:first-child {
  31. /* 默认位置 */
  32. /* grid-row-start: 1;
  33. grid-row-end: 2;
  34. 行开始与行结束
  35. */
  36. /* grid-row: 1 / 2; 行合并写法*/
  37. /* grid-column-start: 1;
  38. grid-column-end: 2;
  39. 列开始与列结束
  40. */
  41. /* grid-column: 1 / 2; *行合并写法/
  42. /* grid-row/column: 行(列)起始编号 / 行(列)结束编号 */
  43. /* 可以将项目移动到容器空间的任意位置上 */
  44. /* 正中间 */
  45. /* grid-row: 2 / 3;
  46. grid-column: 2 / 3; */
  47. /* 一个项目至少要占据一个单元格,一个单元格,默认跨越1行1列 */
  48. /*简化写法
  49. grid-row: 2;
  50. grid-column: 2; */
  51. /* 从正中间,跨越2行2列,如何布局 */
  52. /* grid-row: 2 / 4;
  53. grid-column: 2 / 4; */
  54. /* 当单元格跨越多个时,形成一个矩形的空间,称为"网格区域" */
  55. /* 只关心跨越几行几列,至于结束的行号和列号并不关心 */
  56. /* grid-row: 2 / span 2;
  57. grid-column: 2 / span 2; */
  58. /* span跨越多行多列可形成一个网格区域,使用以上的2个属性,可以简化以上的操作 */
  59. /* area区域的意思 grid-area: 行开始 / 列开始 / 行结束 / 列结束 */
  60. /* grid-area: 2 / 2 / 4 / 4; */
  61. /* 向上一行 */
  62. /* grid-area: 1 / 2 / 3 / 4; */
  63. grid-area: 1 / 2 / span 2 / span 2;
  64. /* 当前,如果是 span 1 可以简化,如果span 1不在最后的位置不能省 */
  65. }
  66. </style>
  67. </head>
  68. <body>
  69. <div class="container1">
  70. <div class="item1">item1</div>
  71. </div>
  72. <hr>
  73. <style>
  74. .container1{
  75. width: 300px;
  76. height: 150px;
  77. display: grid;
  78. grid-template-columns: repeat(3,1fr);
  79. grid-template-rows: repeat(3,1fr);
  80. }
  81. .container1 >.item1{
  82. background-color: red;
  83. }
  84. .container1>.item1:first-child{
  85. grid-area: 3/2/span 2/span 2;
  86. }
  87. </style>
  88. <hr>
  89. <div class="container">
  90. <div class="item">item1</div>
  91. <div class="item">item2</div>
  92. <div class="item">item3</div>
  93. <div class="item">item4</div>
  94. <div class="item">item5</div>
  95. <div class="item">item6</div>
  96. <div class="item">item7</div>
  97. <div class="item">item8</div>
  98. <div class="item">item9</div>
  99. <!-- 当前容器有9个单元格,默认可以放入9个项目 -->
  100. <!-- 如果项目数量 > 9, 会什么 -->
  101. <div class="item add">item10</div>
  102. <div class="item add">item11</div>
  103. </div>
  104. <style>
  105. .container {
  106. width: 300px;
  107. height: 300px;
  108. padding: 5px;
  109. background-color: antiquewhite;
  110. border: 1px solid forestgreen;
  111. display: grid;
  112. /* 显式网格 */
  113. grid-template-columns: repeat(3, 1fr);
  114. grid-template-rows: repeat(3, 1fr);
  115. /* 1. 排列规则 */
  116. /* row: 行优先,默认值 */
  117. /* grid-auto-flow: row; */
  118. /* grid-auto-flow: column; */
  119. /* 2. 隐式网格 */
  120. /* 超出显式网格数量的项目,创建在隐式网格中(自动生成) */
  121. /* grid-auto-rows: 50px; */
  122. /* grid-auto-rows: 1fr; */
  123. /* gap: 行列间隙/轨道间距 */
  124. /* gap: 垂直方向 水平方向 */
  125. /* gap:5px 5px;
  126. gap: 10px 5px;
  127. gap: 10px 10px; */
  128. gap: 5px;
  129. }
  130. /* 项目*/
  131. .container > .item {
  132. background-color: bisque;
  133. }
  134. .container > .item.add {
  135. background-color: violet;
  136. /* 如果是行优先,高度就是默认的内容高度 */
  137. }
  138. </style>
  139. <hr>
  140. <hr>
  141. <div class="container2">
  142. <div class="item2">item1</div>
  143. <div class="item2">item2</div>
  144. <div class="item2">item3</div>
  145. <div class="item2">item4</div>
  146. <div class="item2 active">item5</div>
  147. <div class="item2">item6</div>
  148. <div class="item2">item7</div>
  149. <div class="item2">item8</div>
  150. <div class="item2">item9</div>
  151. </div>
  152. <style>
  153. .container2 {
  154. /* width: 300px;
  155. height: 300px; */
  156. width: 450px;
  157. height: 450px;
  158. border: 1px solid #000;
  159. background-color: lightcyan;
  160. display: grid;
  161. /* 显式网格 */
  162. grid-template-columns: repeat(3, 100px);
  163. grid-template-rows: repeat(3, 100px);
  164. /*
  165. 1. 对齐前提: 容器中必须存在"剩余空间"(待分配的空间)
  166. 2. 对齐本质: 剩余空间,在"项目"之间的分配方案
  167. 3. 剩余空间: Flex(主轴,交叉轴), Grid(容器,单元格)
  168. */
  169. /* 1. 项目在"容器"中的对齐 */
  170. /* place-content: 垂直方向 水平方向; */
  171. /* 默认左上角,行与列的起始编号 */
  172. place-content: start start;
  173. /* 垂直居中,水平居右 */
  174. place-content: center end;
  175. /* 垂直,水平全居中 */
  176. /* place-content: center center; */
  177. /* 双值相同, 可只写一个 */
  178. place-content: center;
  179. /* 剩余空间还可以在所有项目之间进行分配 */
  180. place-content: space-between space-around;
  181. place-content: space-between space-between;
  182. place-content: space-between;
  183. place-content: space-around;
  184. /* 2. 项目在"单元格"中的对齐 */
  185. /* place-items: 垂直方向 水平方向; */
  186. place-items: start start;
  187. place-items: start end;
  188. place-items: center center;
  189. place-items: center;
  190. place-items: end;
  191. place-items: start;
  192. /* position: relative; */
  193. }
  194. /* 项目*/
  195. .container2 > .item2 {
  196. background-color: bisque;
  197. /* 默认,项目会充满单元格 */
  198. width: 50px;
  199. height: 50px;
  200. /* 传统margin */
  201. /* 要求 5px 间隙 */
  202. /* margin: 5px; */
  203. /* margin-right: 5px;
  204. margin-bottom: 5px; */
  205. }
  206. .container2 > .item2.active {
  207. background-color: violet;
  208. /* 某个项目,有特殊的对齐要求 */
  209. place-self: end;
  210. place-self: center;
  211. /* position: relative;
  212. top: 10px;
  213. left: 10px; */
  214. /* position: absolute;
  215. top: 0;
  216. left: 0; */
  217. }
  218. </style>
  219. </body>
  220. </html>

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>Document</title>
  8. <style>
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. body{
  15. background-color: gainsboro;
  16. }
  17. ul li{
  18. list-style: none;
  19. }
  20. a{
  21. text-decoration: none;
  22. color: rgb(0,0,0);
  23. }
  24. a:hover{
  25. cursor: pointer;
  26. color:blanchedalmond;
  27. }
  28. .new-courses{
  29. width: 1200px;
  30. margin: 130px auto;
  31. display: grid;
  32. grid-template-columns: 30px 530px;
  33. }
  34. .top{
  35. width: 1198px;
  36. height: 30px;
  37. display: grid;
  38. grid-template-columns: 150px 100px;
  39. place-content: space-between;
  40. /* margin-left: 30px; */
  41. place-items: center;
  42. }
  43. .top h3{
  44. font-size: 20px;
  45. line-height: 20px;
  46. /* margin-left: 30px; */
  47. }
  48. .top a{
  49. width: 70px;
  50. height:25px;
  51. line-height: 25px;
  52. font-size: 14px;
  53. text-align: center;
  54. place-self: end;
  55. margin-right: 15px;
  56. background-color: whitesmoke;
  57. }
  58. .top a:hover{
  59. background-color: lightcoral;
  60. color: white;
  61. border-radius: 15px;
  62. }
  63. /* 课程内容grid,2行5列 */
  64. .courses > .list {
  65. width: 1180px;
  66. display: grid;
  67. grid-template-columns: repeat(5,220px);
  68. grid-template-rows: repeat(2,280px);
  69. place-content: space-between;
  70. margin-top: 60px;
  71. }
  72. /* 一个课程grid,2行1列 */
  73. .courses > .list > .item {
  74. display: grid;
  75. grid-template-rows: 150px 100px;
  76. }
  77. .courses > .list > .item a{
  78. width: 220px;
  79. overflow: hidden;
  80. border-radius: 15px 15px 0 0;
  81. }
  82. .courses > .list > .item a:hover{
  83. color: red;
  84. }
  85. .courses > .list > .item a img{
  86. width: 220px;
  87. height: 150px;
  88. transition: all 0.5s;
  89. }
  90. .courses > .list > .item a img:hover{
  91. width: 220px;
  92. overflow: hidden;
  93. transform: scale(1.1);
  94. }
  95. /* 文字内容grid,2行1列 */
  96. .courses > .list > .item > .detail{
  97. display: grid;
  98. grid-template-rows: 60px 40px;
  99. font-size: 14px;
  100. place-items: center;
  101. border-radius: 0 0 15px 15px;
  102. background-color: white;
  103. }
  104. .courses > .list > .item > .detail > .title > .level{
  105. padding:0 10px;
  106. background-color: #E0E8FC;
  107. color:#298AFD;
  108. }
  109. .courses > .list > .item > .detail > .title > .level.add{
  110. padding:0 10px;
  111. background-color: #ef9fc7a4;
  112. color:#fd2942;
  113. }
  114. .courses > .list > .item > .detail > .title {
  115. place-self: end;
  116. padding: 0 25px;
  117. }
  118. /* grid,1行2列 */
  119. .courses > .list > .item > .detail > .desc{
  120. display: grid;
  121. grid-template-columns: 100px 100px;
  122. font-size: 10px;
  123. }
  124. .courses > .list > .item > .detail > .desc span{
  125. padding-left: 20px;
  126. color:gray
  127. }
  128. .courses > .list > .item > .detail > .desc span:last-child{
  129. padding-right: 20px;
  130. place-self: end;
  131. }
  132. </style>
  133. </head>
  134. <body>
  135. <!-- 整体可看成1行2行 -->
  136. <div class="new-courses">
  137. <div class="top">
  138. <h3>最新课程</h3>
  139. <a href="">更多 ></a>
  140. </div>
  141. <div class="courses">
  142. <ul class="list">
  143. <!--1个课程开始-->
  144. <li class="item">
  145. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  146. <div class="detail">
  147. <div class="title">
  148. <span class="level">初级</span>
  149. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  150. </div>
  151. <div class="desc">
  152. <span>1234次学习</span>
  153. <span>收藏</span>
  154. </div>
  155. </div>
  156. </li>
  157. <li class="item">
  158. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  159. <div class="detail">
  160. <div class="title">
  161. <span class="level">初级</span>
  162. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  163. </div>
  164. <div class="desc">
  165. <span>1234次学习</span>
  166. <span>收藏</span>
  167. </div>
  168. </div>
  169. </li>
  170. <li class="item">
  171. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  172. <div class="detail">
  173. <div class="title">
  174. <span class="level add">中级</span>
  175. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  176. </div>
  177. <div class="desc">
  178. <span>1234次学习</span>
  179. <span>收藏</span>
  180. </div>
  181. </div>
  182. </li>
  183. <li class="item">
  184. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  185. <div class="detail">
  186. <div class="title">
  187. <span class="level">初级</span>
  188. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  189. </div>
  190. <div class="desc">
  191. <span>1234次学习</span>
  192. <span>收藏</span>
  193. </div>
  194. </div>
  195. </li>
  196. <li class="item">
  197. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  198. <div class="detail">
  199. <div class="title">
  200. <span class="level">初级</span>
  201. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  202. </div>
  203. <div class="desc">
  204. <span>1234次学习</span>
  205. <span>收藏</span>
  206. </div>
  207. </div>
  208. </li> <li class="item">
  209. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  210. <div class="detail">
  211. <div class="title">
  212. <span class="level">初级</span>
  213. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  214. </div>
  215. <div class="desc">
  216. <span>1234次学习</span>
  217. <span>收藏</span>
  218. </div>
  219. </div>
  220. </li> <li class="item">
  221. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  222. <div class="detail">
  223. <div class="title">
  224. <span class="level">初级</span>
  225. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  226. </div>
  227. <div class="desc">
  228. <span>1234次学习</span>
  229. <span>收藏</span>
  230. </div>
  231. </div>
  232. </li> <li class="item">
  233. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  234. <div class="detail">
  235. <div class="title">
  236. <span class="level">初级</span>
  237. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  238. </div>
  239. <div class="desc">
  240. <span>1234次学习</span>
  241. <span>收藏</span>
  242. </div>
  243. </div>
  244. </li> <li class="item">
  245. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  246. <div class="detail">
  247. <div class="title">
  248. <span class="level">初级</span>
  249. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  250. </div>
  251. <div class="desc">
  252. <span>1234次学习</span>
  253. <span>收藏</span>
  254. </div>
  255. </div>
  256. </li>
  257. <li class="item">
  258. <a href=""><img src="https://img.php.cn/upload/course/000/000/068/63e202276944f543.jpg" alt=""></a>
  259. <div class="detail">
  260. <div class="title">
  261. <span class="level add">中级</span>
  262. <a href="">Laravel 8 课程精讲(台湾同胞版)</a>
  263. </div>
  264. <div class="desc">
  265. <span>1234次学习</span>
  266. <span>收藏</span>
  267. </div>
  268. </div>
  269. </li>
  270. <!--1个课程结束-->
  271. </ul>
  272. </div>
  273. </div>
  274. </body>
  275. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议