博客列表 >《grid实战PHP中文网首页》20201225

《grid实战PHP中文网首页》20201225

杨凡的博客
杨凡的博客原创
2020年12月30日 23:22:22663浏览

grid布局项目在网格单元中的对齐方式

所有项目在网格单元中的对齐方式

1、垂直居上 水平居中
  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container{
  9. border: 1px solid #000;
  10. padding: 0.5em;
  11. /* grid布局 */
  12. display: grid;
  13. /* 轨道宽度 */
  14. grid-template-columns: repeat(3,1fr);
  15. /* 轨道高度 */
  16. grid-template-rows: repeat(2,5em);
  17. /* 隐式轨道高度 */
  18. grid-auto-rows: 5em;
  19. /* 轨道间隙 */
  20. gap: 0.5em;
  21. }
  22. .container> .item{
  23. background-color: lightcyan;
  24. border: 1px solid#000;
  25. padding: 0.5em;
  26. }
  27. /* 项目在网格单元中存在剩余空间,对齐才有必要且有意义 */
  28. .container> .item{
  29. width: 5em;
  30. height: 2em;
  31. }
  32. /* 所有项目在网格单元中的对齐方式 */
  33. .container{
  34. /* place-items: 垂直方向 水平方向; */
  35. /* 垂直居上 水平居中 */
  36. /* place-items: normal center; */
  37. place-items: start center;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="item">item1</div>
  44. <div class="item">item2</div>
  45. <div class="item">item3</div>
  46. <div class="item">item4</div>
  47. <div class="item">item5</div>
  48. <div class="item">item6</div>
  49. <div class="item">item7</div>
  50. <div class="item">item8</div>
  51. <div class="item">item9</div>
  52. </div>
  53. </body>
  54. </html>

2、垂直水平居中
  1. .container{
  2. /* place-items: 垂直方向 水平方向; */
  3. /* 垂直水平居中 */
  4. /*place-items: center center;*/
  5. place-items: center;
  6. }

3、拉伸效果
  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container{
  9. border: 1px solid #000;
  10. padding: 0.5em;
  11. /* grid布局 */
  12. display: grid;
  13. /* 轨道宽度 */
  14. grid-template-columns: repeat(3,1fr);
  15. /* 轨道高度 */
  16. grid-template-rows: repeat(2,5em);
  17. /* 隐式轨道高度 */
  18. grid-auto-rows: 5em;
  19. /* 轨道间隙 */
  20. gap: 0.5em;
  21. }
  22. .container> .item{
  23. background-color: lightcyan;
  24. border: 1px solid#000;
  25. padding: 0.5em;
  26. }
  27. /* 项目在网格单元中存在剩余空间,对齐才有必要且有意义 */
  28. .container> .item{
  29. /* width: 5em;
  30. height: 2em; */
  31. }
  32. /* 所有项目在网格单元中的对齐方式 */
  33. .container {
  34. /* place-items: 垂直方向 水平方向; */
  35. place-items: normal center;
  36. place-items: auto center;
  37. /* 拉伸,取消固定尺寸可以看到拉升效果 */
  38. place-items:stretch;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <div class="container">
  44. <div class="item">item1</div>
  45. <div class="item">item2</div>
  46. <div class="item">item3</div>
  47. <div class="item">item4</div>
  48. <div class="item">item5</div>
  49. <div class="item">item6</div>
  50. <div class="item">item7</div>
  51. <div class="item">item8</div>
  52. <div class="item">item9</div>
  53. </div>
  54. </body>
  55. </html>

某个项目在网格单元中的对齐方式

1、水平垂直居中
  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container{
  9. border: 1px solid #000;
  10. padding: 0.5em;
  11. /* grid布局 */
  12. display: grid;
  13. /* 轨道宽度 */
  14. grid-template-columns: repeat(3,1fr);
  15. /* 轨道高度 */
  16. grid-template-rows: repeat(2,5em);
  17. /* 隐式轨道高度 */
  18. grid-auto-rows: 5em;
  19. /* 轨道间隙 */
  20. gap: 0.5em;
  21. }
  22. .container> .item{
  23. background-color: lightcyan;
  24. border: 1px solid#000;
  25. padding: 0.5em;
  26. }
  27. /* 项目在网格单元中存在剩余空间,对齐才有必要且有意义 */
  28. .container> .item{
  29. width: 5em;
  30. height: 2em;
  31. }
  32. /* 所有某个项目在网格单元中的对齐方式 */
  33. .container> .item:nth-of-type(5){
  34. background-color: yellow;
  35. /* place-self: center center; */
  36. place-self: center;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="container">
  42. <div class="item">item1</div>
  43. <div class="item">item2</div>
  44. <div class="item">item3</div>
  45. <div class="item">item4</div>
  46. <div class="item">item5</div>
  47. <div class="item">item6</div>
  48. <div class="item">item7</div>
  49. <div class="item">item8</div>
  50. <div class="item">item9</div>
  51. </div>
  52. </body>
  53. </html>

2、左下角
  1. .container> .item:nth-of-type(5){
  2. background-color: yellow;
  3. place-self: end start;
  4. }

3、右下角
  1. .container> .item:nth-of-type(5){
  2. background-color: yellow;
  3. /* place-self: end end; */
  4. place-self: end;
  5. }

3、网格单元申明成网格区域,设置项目居中网格区域
  1. .container> .item:nth-of-type(5){
  2. background-color: yellow;
  3. grid-area: span 2/span 2;
  4. place-self: center;
  5. }

所有项目在容器中的对齐方式

1、将所有项目作为整体在容器中对其
  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container{
  9. height: 25em;
  10. border: 1px solid #000;
  11. padding: 0.5em;
  12. /* grid布局 */
  13. display: grid;
  14. /* 轨道宽度 */
  15. grid-template-columns: repeat(3,10em);
  16. /* 轨道高度 */
  17. grid-template-rows: repeat(2,5em);
  18. /* 隐式轨道高度 */
  19. grid-auto-rows: 5em;
  20. /* 轨道间隙 */
  21. gap: 0.5em;
  22. }
  23. .container> .item{
  24. background-color: lightcyan;
  25. border: 1px solid#000;
  26. padding: 0.5em;
  27. }
  28. /* 设置所有项目在容器中的对其方式 place-content: 垂直方向 水平方向; */
  29. .container{
  30. /* 默认 */
  31. place-content: start start;
  32. /* 靠上居中 */
  33. place-content: start center;
  34. /* 水平垂直居中 */
  35. place-content: center center;
  36. /* 右下角对其 */
  37. place-content: end end;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="item">item1</div>
  44. <div class="item">item2</div>
  45. <div class="item">item3</div>
  46. <div class="item">item4</div>
  47. <div class="item">item5</div>
  48. <div class="item">item6</div>
  49. <div class="item">item7</div>
  50. <div class="item">item8</div>
  51. <div class="item">item9</div>
  52. </div>
  53. </body>
  54. </html>

2、将所有项目作为个体在容器中设置对其方式
  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container{
  9. height: 25em;
  10. border: 1px solid #000;
  11. padding: 0.5em;
  12. /* grid布局 */
  13. display: grid;
  14. /* 轨道宽度 */
  15. grid-template-columns: repeat(3,10em);
  16. /* 轨道高度 */
  17. grid-template-rows: repeat(2,5em);
  18. /* 隐式轨道高度 */
  19. grid-auto-rows: 5em;
  20. /* 轨道间隙 */
  21. gap: 0.5em;
  22. }
  23. .container> .item{
  24. background-color: lightcyan;
  25. border: 1px solid#000;
  26. padding: 0.5em;
  27. }
  28. /* 设置所有项目在容器中的对其方式 place-content: 垂直方向 水平方向; */
  29. .container{
  30. /* 水平垂直方向两端对其 */
  31. place-content: space-between space-between;
  32. /* 水平垂直方向分散对其 */
  33. place-content: space-around space-around;
  34. /* 水平垂直方向平均对其 */
  35. place-content: space-evenly space-evenly;
  36. /* 水平方向两端对其 垂直方向平均对其 */
  37. place-content: space-evenly space-between;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="container">
  43. <div class="item">item1</div>
  44. <div class="item">item2</div>
  45. <div class="item">item3</div>
  46. <div class="item">item4</div>
  47. <div class="item">item5</div>
  48. <div class="item">item6</div>
  49. <div class="item">item7</div>
  50. <div class="item">item8</div>
  51. <div class="item">item9</div>
  52. </div>
  53. </body>
  54. </html>

PHP中文网首页

  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>仿PHP中文网</title>
  7. <style>
  8. /* 页面初始化 */
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. /* 去除小黑点 */
  15. li{
  16. list-style: none;
  17. }
  18. /* 设置a标签字体颜色及去除下划线 */
  19. a{
  20. color: #444444;
  21. text-decoration: none;
  22. }
  23. header{
  24. height: 60px;
  25. background-color: #000;
  26. margin-bottom: 30px;
  27. display: grid;
  28. grid-template-columns: 140px 1fr;
  29. }
  30. header .logo img{
  31. height: 60px;
  32. width: 140px;
  33. }
  34. header .menus-top .navs-top{
  35. display: grid;
  36. grid-template-columns: repeat(9,100px);
  37. line-height: 60px;
  38. font-size: 14px;
  39. margin-left: 40px;
  40. }
  41. header .menus-top .navs-top li:first-of-type{
  42. background-color: rgba(255,255,255,.3);
  43. width: 70px;
  44. padding-left: 20px;
  45. }
  46. header .menus-top .navs-top a{
  47. color: #B3B3B3;
  48. }
  49. footer{
  50. height: 165px;
  51. background-color: #393D49;
  52. color: #eee;
  53. }
  54. .main-top{
  55. height: 510px;
  56. width: 1200px;
  57. margin-bottom: 30px;
  58. display: grid;
  59. grid-template-columns: 216px 1fr;
  60. grid-template-rows: 60px 1fr 120px;
  61. margin: auto;
  62. border-radius: 10px;
  63. }
  64. /* 左侧导航区 */
  65. .main-top>nav.menus{
  66. grid-area: span 3;
  67. background-color: #2b333b;
  68. border-radius: 10px 0 0 10px;
  69. padding-top: 15px;
  70. box-shadow: 1px 1px 5px #DCDFE2;
  71. }
  72. .main-top>nav.menus .navs-left>li{
  73. height: 60px;
  74. line-height: 60px;
  75. cursor: pointer;
  76. padding-left: 12px;
  77. display: grid;
  78. position: relative;
  79. }
  80. .main-top>nav.menus .navs-left>li:hover{
  81. background-color: rgba(255,255,255,.3);
  82. }
  83. .main-top>nav.menus .navs-left>li span{
  84. position: absolute;
  85. padding-right: 20px;
  86. font-size: 20px;
  87. right: 0;
  88. }
  89. .main-top>nav.menus .navs-left>li a{
  90. color: rgba(255,255,255,.6);
  91. padding: 0 15px;
  92. font-size: 16px;
  93. }
  94. /* 顶部导航区 */
  95. .main-top>ul.navs {
  96. background-color:#fff;
  97. display: grid;
  98. grid-template-columns: repeat(7,83px) 1fr;
  99. place-items: center;
  100. border-radius: 0 10px 0 0;
  101. box-shadow: 1px 1px 5px#DCDFE2;
  102. font-size: 14px;
  103. gap: 0 10px;
  104. padding-left: 10px;
  105. }
  106. /* 顶部导航区搜索框 */
  107. .main-top>ul.navs>li:last-of-type {
  108. place-self: center start;
  109. padding-left: 50px;
  110. }
  111. .main-top>ul.navs>li a .hong{
  112. background-color: #FF5722;
  113. color: #fff;
  114. border-radius: 3px;
  115. padding: 0 5px;
  116. font-size: 12px;
  117. }
  118. .main-top>ul.navs>li a .hui{
  119. background-color: #2F4056;
  120. color: #fff;
  121. border-radius: 3px;
  122. padding: 0 5px;
  123. font-size: 12px;
  124. }
  125. .main-top>ul.navs>li a .huang{
  126. background-color: #FFB800;
  127. color: #fff;
  128. border-radius: 3px;
  129. padding: 0 5px;
  130. font-size: 12px;
  131. }
  132. .main-top>ul.navs>li input{
  133. width: 260px;
  134. height: 40px;
  135. border: none;
  136. background-color: #F1F0F0;
  137. padding: 10px;
  138. }
  139. /* 轮播图 */
  140. .main-top .slider{
  141. background-image: url('https://img.php.cn/upload/article/000/000/001/5fabba9a8557c153.jpg');
  142. }
  143. /* 推荐课程 */
  144. .main-top>ul.course {
  145. display: grid;
  146. grid-template-columns: repeat(4,1fr);
  147. padding: 10px;
  148. gap: 10px;
  149. border-radius: 0 0 10px 0;
  150. box-shadow: 1px 1px 5px#DCDFE2;
  151. }
  152. .main-top>ul.course>* {
  153. cursor: pointer;
  154. }
  155. .main-top>ul.course img{
  156. border-radius: 10px;
  157. width: 236px;
  158. height: 90px;
  159. }
  160. /* 广告图片 */
  161. .gg_img {
  162. margin: 15px auto;
  163. display: grid;
  164. width: 1200px;
  165. cursor: pointer;
  166. }
  167. .gg_img>a>img{
  168. border-radius: 10px;
  169. }
  170. /* 课程列表区 */
  171. .mian-courses {
  172. width: 1200px;
  173. height: 646px;
  174. padding: 15px;
  175. background-color: #FFFFFF;
  176. margin: 30px auto;
  177. display: grid;
  178. grid-template-rows: 50px 1fr;
  179. border-radius: 10px;
  180. box-shadow: 1px 1px 5px#DCDFE2;
  181. }
  182. .mian-courses h3{
  183. color: #444444;
  184. text-align: center;
  185. }
  186. .mian-courses .course-list {
  187. display: grid;
  188. grid-template-columns: repeat(5,1fr);
  189. grid-template-rows: repeat(3,1fr);
  190. gap: 20px;
  191. }
  192. .mian-courses .course-list>* {
  193. border-radius: 10px;
  194. /* box-shadow: 1px 1px 5px#DCDFE2; */
  195. }
  196. .mian-courses .course-list img{
  197. border-radius: 10px;
  198. box-shadow: 1px 1px 5px#DCDFE2;
  199. width: 100%;
  200. }
  201. .mian-courses .course-list>li:first-of-type{
  202. grid-area: span 2;
  203. }
  204. </style>
  205. </head>
  206. <body>
  207. <header class="top">
  208. <div class="logo"><img src="https://www.php.cn/static/images/logo.png" alt=""></div>
  209. <nav class="menus-top">
  210. <ul class="navs-top">
  211. <li><a href="">首页</a></li>
  212. <li><a href="">视频教程</a></li>
  213. <li><a href="">入门教程</a></li>
  214. <li><a href="">社区问答</a></li>
  215. <li><a href="">技术文章</a></li>
  216. <li><a href="">资源下载</a></li>
  217. <li><a href="">编程词典</a></li>
  218. <li><a href="">工具下载</a></li>
  219. <li><a href="">PHP培训</a></li>
  220. </ul>
  221. </nav>
  222. </header>
  223. <div class="main-top">
  224. <!-- 左边菜单 -->
  225. <nav class="menus">
  226. <ul class="navs-left">
  227. <li><a href="">php开发<span>&gt</span></a></li>
  228. <li><a href="">前端开发<span>&gt</span></a></li>
  229. <li><a href="">服务端开发<span>&gt</span></a></li>
  230. <li><a href="">移动开发<span>&gt</span></a></li>
  231. <li><a href="">数据库<span>&gt</span></a></li>
  232. <li><a href="">服务器运维&下载<span>&gt</span></a></li>
  233. <li><a href="">在线工具箱<span>&gt</span></a></li>
  234. <li><a href="">常用类库<span>&gt</span></a></li>
  235. </ul>
  236. </nav>
  237. <!-- 顶部菜单 -->
  238. <ul class="navs">
  239. <li><a href="">PHP头条<span class="hong"></span></a></li>
  240. <li><a href="">独孤九贱</a></li>
  241. <li><a href="">学习路线<span class="hui"></span></a></li>
  242. <li><a href="">在线工具</a></li>
  243. <li><a href="">趣味课堂<span class="huang"></span></a></li>
  244. <li><a href="">社区问答</a></li>
  245. <li><a href="">课程直播</a></li>
  246. <li><input type="text" placeholder="输入关键词搜索"></li>
  247. </ul>
  248. <div class="slider"></div>
  249. <!-- 底部推荐课程 -->
  250. <ul class="course">
  251. <li><a href=""><img src="https://www.php.cn/static/images/index_yunv.jpg" alt=""></a></li>
  252. <li><a href=""><img src="https://www.php.cn/static/images/index_php_item2_.png?1" alt=""></a></li>
  253. <li><a href=""><img src="https://www.php.cn/static/images/index_php_item3.jpg?1" alt=""></a></li>
  254. <li><a href=""><img src="https://www.php.cn/static/images/index_php_new4.jpg?1" alt=""></a></li>
  255. </ul>
  256. </div>
  257. <!-- 广告 -->
  258. <div class="gg_img">
  259. <a href="https://www.php.cn/k.html" target="view_window"><img src="https://img.php.cn/upload/article/000/000/001/5fb478ce65c09239.jpg" alt=""></a>
  260. </div>
  261. <!-- 课程列表区 -->
  262. <div class="mian-courses">
  263. <h3>&lt;\&gt;php入门精品课程&lt;\&gt;</h3>
  264. <ul class="course-list">
  265. <li><a href=""><img src="https://www.php.cn/static/images/index_learn_first.jpg" alt=""></a></li>
  266. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5b63c72c61569244.png" alt=""></a></li>
  267. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg" alt=""></a></li>
  268. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5ab346fc62ce4221.jpg" alt=""></a></li>
  269. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5acc118f11d6b969.jpg" alt=""></a></li>
  270. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d1c6e0d2b744633.jpg" alt=""></a></li>
  271. <li><a href=""><img src="https://img.php.cn/upload/course/000/001/120/5a9fb97057b15707.jpeg" alt=""></a></li>
  272. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d24019911a24370.jpg" alt=""></a></li>
  273. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/003/5a699f1b2da2b398.jpg" alt=""></a></li>
  274. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5cecd27a4348b582.jpg" alt=""></a></li>
  275. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg" alt=""></a></li>
  276. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/003/5a13c87351613730.jpg" alt=""></a></li>
  277. <li><a href=""><img src="https://img.php.cn/upload/course/000/171/829/5b19ef2990649817.jpg" alt=""></a></li>
  278. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d240300be85b731.jpg" alt=""></a></li>
  279. </ul>
  280. </div>
  281. <div class="mian-courses">
  282. <h3>&lt;\&gt;php进阶学习路径&lt;\&gt;</h3>
  283. <ul class="course-list">
  284. <li><a href=""><img src="https://www.php.cn/static/images/index_learn_first.jpg" alt=""></a></li>
  285. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5b63c72c61569244.png" alt=""></a></li>
  286. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5aa23f0ded921649.jpg" alt=""></a></li>
  287. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5ab346fc62ce4221.jpg" alt=""></a></li>
  288. <li><a href=""><img src="https://img.php.cn/upload/course/000/126/153/5acc118f11d6b969.jpg" alt=""></a></li>
  289. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d1c6e0d2b744633.jpg" alt=""></a></li>
  290. <li><a href=""><img src="https://img.php.cn/upload/course/000/001/120/5a9fb97057b15707.jpeg" alt=""></a></li>
  291. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d24019911a24370.jpg" alt=""></a></li>
  292. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/003/5a699f1b2da2b398.jpg" alt=""></a></li>
  293. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5cecd27a4348b582.jpg" alt=""></a></li>
  294. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d1c6dfc9eb09885.jpg" alt=""></a></li>
  295. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/003/5a13c87351613730.jpg" alt=""></a></li>
  296. <li><a href=""><img src="https://img.php.cn/upload/course/000/171/829/5b19ef2990649817.jpg" alt=""></a></li>
  297. <li><a href=""><img src="https://img.php.cn/upload/course/000/000/001/5d240300be85b731.jpg" alt=""></a></li>
  298. </ul>
  299. </div>
  300. <footer>页脚</footer>
  301. </body>
  302. </html>

grid的媒体查询与专业的媒体查询的区别

  1. 使用媒体查询:媒体查询能在不同的条件下使用不同的样式,使页面在不同在终端设备下达到不同的渲染效果。用法:@media 媒体类型 and (媒体特性) {样式}
    2.grid媒体查询主要通过auto-fit属性自动填充来实现类似媒体查询功能

作业内容:

  1. 将项目在网格单元和容器中对齐的相关属性全部实例演示;
  2. 快速实现php.cn首页主要组件的布局,并理解为什么?
  3. 理解grid的媒体查询与专业的媒体查询有什么区别?
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议