Blogger Information
Blog 18
fans 0
comment 2
visits 8790
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
仿PHP中文网首页部分布局
弦知音的博客
Original
392 people have browsed it

仿PHP中文网首页部分布局

1. demo.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>仿PHP中文网首页布局</title>
  8. <link rel="stylesheet" href="static/css/my-reset.css">
  9. <link rel="stylesheet" href="static/css/my-header.css">
  10. <link rel="stylesheet" href="static/css/my-main-nav.css">
  11. </head>
  12. <body>
  13. <!-- 头部 -->
  14. <header>
  15. <!-- 顶部横条 -->
  16. <div class="top">
  17. <div class="content">
  18. <div class="tltle">PHP中文网-程序员梦开始的地方!</div>
  19. <div class="login">注册/登录</div>
  20. </div>
  21. </div>
  22. <!-- 导航 -->
  23. <div class="navs">
  24. <div class="content">
  25. <div class="logo">
  26. <a href="https://www.php.cn/" title="php中文网">
  27. <img src="static/images/logo.png" alt="php中文网">
  28. </a>
  29. </div>
  30. <div class="nav">
  31. <a href="">首页</a>
  32. <a href="">视频教程</a>
  33. <a href="">学习路径</a>
  34. <a href="">大前端培训</a>
  35. <a href="">资源下载</a>
  36. <a href="">技术文章</a>
  37. <a href="">社区</a>
  38. <a href="">APP下载</a>
  39. </div>
  40. <div class="search">
  41. <input type="search" name="search" placeholder="请输入关键词搜索">
  42. <span class="iconfont icon-Magnifier"></span>
  43. </div>
  44. </div>
  45. </div>
  46. </header>
  47. <!-- 主体 -->
  48. <main>
  49. <!-- 第一块 -->
  50. <div class="firBox">
  51. <!-- 2行3列 -->
  52. <!-- 侧边栏目 -->
  53. <div class="menu">
  54. <a href="">php开发</a>
  55. <a href="">大前端</a>
  56. <a href="">后端开发</a>
  57. <a href="">数据库</a>
  58. <a href="">移动端</a>
  59. <a href="">运维开发</a>
  60. <a href="">UI设计</a>
  61. <a href="">计算机基础</a>
  62. </div>
  63. <!-- banner轮播图 -->
  64. <div class="banner">
  65. <a href=""><img src="static/images/slider.jpeg" alt="轮播图1"></a>
  66. </div>
  67. <!-- sider -->
  68. <div class="sider">
  69. <div class="userInfo">
  70. <div class="userCont1">
  71. <a href=""><img src="static/images/user-pic.jpeg" alt="小头像"></a>
  72. <dl>
  73. <dt><a href=''>一步莲华</a></dt>
  74. <dd>P豆:37.5</dd></dd>
  75. </dl>
  76. </div>
  77. <div class="userCont2">
  78. <span><a href="">我的学习</a></span>
  79. </div>
  80. </div>
  81. <div class="wenda">
  82. <div class="wenda-tit">
  83. <span>问答社区</span>
  84. <a href="">答疑</a>
  85. </div>
  86. <div class="wenda-tj">
  87. <p><span>头条</span><a href="">总结往年大前端技术趋势,展望2022...</a></p>
  88. <p><span>活动</span><a href="">限时减免>></a></p>
  89. <p><span>新班</span><a href="">大前端线上班</a></p>
  90. <p><span>招募</span><a href="">课程合作计划</a></p>
  91. <p><span>公告</span><a href="">APP上线啦</a></p>
  92. </div>
  93. </div>
  94. </div>
  95. <!-- 底部栏目 -->
  96. <div class="bottom-menu">
  97. <div class="desc">
  98. <div class="tit">学习路径</div>
  99. <span>全部7个&gt;</span>
  100. </div>
  101. <ul class="detail">
  102. <li>
  103. <img src="static/images/dgjj.png" alt="独孤九贱">
  104. <a href="">独孤九贱</a>
  105. <span>9门课程</span>
  106. </li>
  107. <li>
  108. <img src="static/images/ynxj.png" alt="独孤九贱">
  109. <a href="">玉女心经</a>
  110. <span>5门课程</span>
  111. </li>
  112. <li>
  113. <img src="static/images/tlbb.png" alt="独孤九贱">
  114. <a href="">天龙八部</a>
  115. <span>3门课程</span>
  116. </li>
  117. <li>
  118. <img src="static/images/phpkjkf.png" alt="独孤九贱">
  119. <a href="">自学指南</a>
  120. <span>19门课程</span>
  121. </li>
  122. <li>
  123. <img src="static/images/phpksrm.png" alt="独孤九贱">
  124. <a href="">趣味闯关</a>
  125. <span>22门课程</span>
  126. </li>
  127. <!-- <li>
  128. <img src="static/images/dgjj.png" alt="独孤九贱">
  129. <a href="">入门教程</a></a>
  130. <span>22门课程</span>
  131. </li>
  132. <li>
  133. <img src="static/images/dgjj.png" alt="独孤九贱">
  134. <a href="">PHP直播班</a>
  135. <span>三个阶段</span>
  136. </li> -->
  137. </ul>
  138. </div>
  139. <!-- 底部关注 -->
  140. <div class="attention">
  141. <ul class="att">
  142. <li><a href="">
  143. <span class="iconfont icon-weixin-copy"></span>
  144. <span>官方公众号</span>
  145. </a>
  146. </li>
  147. <li><a href="">
  148. <span class="iconfont icon-qq"></span>
  149. <span>官方QQ群</span>
  150. </a>
  151. </li>
  152. </ul>
  153. </div>
  154. </div>
  155. <!-- 第二块 -->
  156. <div class="secBox">
  157. <div class="secTit">
  158. <h2>最新课程</h2>
  159. <a href="">更多&gt;</a>
  160. </div>
  161. <!-- 课程列表 -->
  162. <ul class="courses">
  163. <li>
  164. <span><a href="">H5+CSS3从入门到精通</a></span>
  165. <dl>
  166. <dt><i>初级</i><a href="">前端基础HTML5+CSS3从入门到精通</a></dt>
  167. <dd><p>8053次学习</p><em class="iconfont icon-xinghao"><a href="">收藏</a></em></dd>
  168. </dl>
  169. </li>
  170. <li>
  171. <span><a href="">JavaScript基础语法讲解</a></span>
  172. <dl>
  173. <dt><i>初级</i><a href="">JavaScript基础语法讲解</a></dt>
  174. <dd><p>8053次学习</p><em>收藏</em></dd>
  175. </dl>
  176. </li>
  177. <li>
  178. <span><a href="">HTTP基础原理及应用</a></span>
  179. <dl>
  180. <dt><i>初级</i><a href="">HTTP基础原理及应用</a></dt>
  181. <dd><p>8053次学习</p><em class="iconfont icon-xinghao"><a href="">收藏</a></em></dd>
  182. </dl>
  183. </li>
  184. <li>
  185. <span><a href="">HTTP协议基础知识掌握</a></span>
  186. <dl>
  187. <dt><i>初级</i><a href="">HTTP协议基础知识掌握</a></dt>
  188. <dd><p>8053次学习</p><em>收藏</em></dd>
  189. </dl>
  190. </li>
  191. <li>
  192. <span><a href="">API接口开发规范</a></span>
  193. <dl>
  194. <dt><i>初级</i><a href="">API接口开发规范</a></dt>
  195. <dd><p>8053次学习</p><em>收藏</em></dd>
  196. </dl>
  197. </li>
  198. <li>
  199. <span><a href="">MySQL查询优化方案</a></span>
  200. <dl>
  201. <dt><i>初级</i><a href="">MySQL查询优化方案</a></dt>
  202. <dd><p>8053次学习</p><em>收藏</em></dd>
  203. </dl>
  204. </li>
  205. <li>
  206. <span><a href="">Promise教程从入门到精通</a></span>
  207. <dl>
  208. <dt><i>初级</i><a href="">Promise教程从入门到精通</a></dt>
  209. <dd><p>8053次学习</p><em>收藏</em></dd>
  210. </dl>
  211. </li>
  212. <li>
  213. <span><a href="">Bootstrap框架入门讲解</a></span>
  214. <dl>
  215. <dt><i>初级</i><a href="">Bootstrap框架入门讲解</a></dt>
  216. <dd><p>8053次学习</p><em>收藏</em></dd>
  217. </dl>
  218. </li>
  219. <li>
  220. <span><a href="">Linux一周时间轻松掌握</a></span>
  221. <dl>
  222. <dt><i>初级</i><a href="">Linux一周时间轻松掌握</a></dt>
  223. <dd><p>8053次学习</p><em>收藏</em></dd>
  224. </dl>
  225. </li>
  226. <li>
  227. <span><a href="">仿美团APP项目JS实战</a></span>
  228. <dl>
  229. <dt><i>初级</i><a href="">仿美团APP项目JS实战</a></dt>
  230. <dd><p>8053次学习</p><em>收藏</em></dd>
  231. </dl>
  232. </li>
  233. </ul>
  234. </div>
  235. </main>
  236. <!-- 底部 -->
  237. <footer></footer>
  238. </body>
  239. </html>

2. static/css/my-reset.css

  1. /* 引入阿里图标库 */
  2. @import url(//at.alicdn.com/t/font_3325033_28ckjqi2ecx.css);
  3. *{
  4. margin: 0;
  5. padding: 0;
  6. box-sizing: border-box;
  7. }
  8. a{
  9. text-decoration: none;
  10. color: #333;
  11. }
  12. li{
  13. list-style: none;
  14. }
  15. body{
  16. background-color: #F3F5F7;
  17. }
  18. input,textarea{
  19. border: none;
  20. outline: none;
  21. }

3. static/css/my-header.css

  1. /* top */
  2. header .top{
  3. width: 100vw;
  4. height: 40px;
  5. background-color: rgb(52,52,52);
  6. color: rgb(196, 191, 191);
  7. }
  8. header .top .content{
  9. width: 1200px;
  10. /* 定义网格布局 */
  11. display: grid;
  12. /* 2列 230px 75px */
  13. grid-template-columns: 230px 75px;
  14. /* 网格行高 */
  15. grid-auto-rows: 40px;
  16. /* 子元素分散对齐 */
  17. place-content: space-between;
  18. /* 子元素 垂直居中 靠左 */
  19. place-items: center start;
  20. /* 两端对齐 */
  21. margin: auto;
  22. font-size: 14px;
  23. }
  24. /* navs */
  25. header .navs{
  26. width: 100vw;
  27. height: 90px;
  28. background-color: #fff;
  29. }
  30. header .navs .content{
  31. width: 1200px;
  32. /* 定义网格布局 */
  33. display: grid;
  34. /* 2列 230px 75px */
  35. grid-template-columns: 140px 1fr 200px;
  36. /* 网格行高 */
  37. grid-auto-rows: 90px;
  38. /* 网格行列间距 */
  39. gap: 10px;
  40. /* 子元素分散对齐 */
  41. place-content: space-between;
  42. /* 子元素 垂直居中 靠左 */
  43. place-items: center start;
  44. /* 两端对齐 */
  45. margin: auto;
  46. }
  47. header .navs .content .logo img{
  48. width: 100%;
  49. }
  50. header .navs .content .nav a{
  51. padding: 0 10px;
  52. }
  53. header .navs .content .nav a:hover,header .navs .content .nav a:first-of-type,header .navs .content .nav a:last-of-type{
  54. color: red;
  55. font-weight: bold;
  56. }
  57. /* search */
  58. header .navs .content .search{
  59. display: flex;
  60. }
  61. header .navs .content .search input[type='search']{
  62. border-radius: 20px;
  63. background-color: rgb(247,248,250);
  64. width: 200px;
  65. height: 40px;
  66. padding-left: 20px;
  67. }
  68. header .navs .content .search .icon-Magnifier{
  69. position: relative;
  70. font-size: 24px;
  71. left: -40px;
  72. top: 8px;
  73. color: #ccc;
  74. }

4. static/css/my-main-nav.css

  1. main{
  2. display: grid;
  3. place-content: center;
  4. font-size: 14px;
  5. }
  6. main .firBox{
  7. /* 2行3列 */
  8. display: grid;
  9. grid-template-columns:160px 1fr 190px;
  10. grid-template-rows: 400px 80px;
  11. gap: 20px;
  12. place-content: center;
  13. margin: 30px 0px;
  14. }
  15. main .firBox>*{
  16. background-color: #fff;
  17. border-radius: 20px;
  18. }
  19. /* menu 左侧菜单 */
  20. main .firBox .menu{
  21. display: grid;
  22. place-items: center;
  23. padding: 20px 0;
  24. }
  25. main .firBox .menu a{
  26. border-radius: 20px;
  27. padding: 10px 20px;
  28. min-width: 120px;
  29. text-align: center;
  30. }
  31. main .firBox .menu a:hover{
  32. color: red;
  33. background-color: rgb(255, 0, 0,.1);
  34. }
  35. /* 轮播图 */
  36. main .firBox .banner img{
  37. border-radius: 10px;
  38. width: 100%;
  39. }
  40. /* 右侧 */
  41. main .firBox .sider{
  42. display: grid;
  43. grid-template-columns: 1fr;
  44. grid-template-rows: 140px 1fr;
  45. place-content: center;
  46. }
  47. main .firBox .sider .userInfo{
  48. display: grid;
  49. grid-template-rows: 60px 80px;
  50. place-items: center;
  51. padding: 15px 0 10px;
  52. border-bottom: 1px solid rgb(209, 209, 209);
  53. }
  54. main .firBox .sider .userCont1{
  55. width: 155px;
  56. display: grid;
  57. grid-template-columns: 40px 1fr;
  58. gap: 15px;
  59. }
  60. main .firBox .sider .userCont1 a>img{
  61. width: 40px;
  62. border-radius: 20px;
  63. }
  64. main .firBox .sider .userCont1 dl dt{
  65. margin-top: -5px;
  66. }
  67. main .firBox .sider .userCont1 dl dt>a{
  68. font-size: 14px;
  69. font-weight:bold;
  70. }
  71. main .firBox .sider .userCont1 dl dd{
  72. font-size: 12px;
  73. color: #999;
  74. margin-top: 5px;
  75. }
  76. main .firBox .sider .userCont2{
  77. position: relative;
  78. bottom: 20px;
  79. }
  80. main .firBox .sider .userCont2 span{
  81. background-color: red;
  82. width: 80%;
  83. }
  84. main .firBox .sider .userCont2 span a{
  85. color: #fff;
  86. font-size: 14px;
  87. display: block;
  88. background-color: red;
  89. width: 150px;
  90. text-align: center;
  91. border-radius: 20px;
  92. height: 34px;
  93. line-height: 34px;
  94. }
  95. main .firBox .sider .userCont2 span a:hover{
  96. background-color: rgb(196, 6, 6);
  97. }
  98. /* 问答 2行1列*/
  99. main .firBox .sider .wenda{
  100. display: grid;
  101. grid-template-rows: 40px 1fr;
  102. padding: 10px 20px;
  103. }
  104. main .firBox .sider .wenda .wenda-tit{
  105. margin-top: 10px;
  106. }
  107. main .firBox .sider .wenda .wenda-tit span{
  108. line-height: 18px;
  109. margin-right: 10px;
  110. color: #515151;
  111. }
  112. main .firBox .sider .wenda .wenda-tit a{
  113. color: white;
  114. background-color: red;
  115. font-size: 10px;
  116. padding: 1px 3px;
  117. }
  118. main .firBox .sider .wenda .wenda-tj p{
  119. margin-top: 17px;
  120. }
  121. main .firBox .sider .wenda .wenda-tj p:first-of-type{
  122. margin-top: 0;
  123. }
  124. main .firBox .sider .wenda .wenda-tj p>span{
  125. line-height: 18px;
  126. margin-right: 10px;
  127. color: #515151;
  128. }
  129. main .firBox .sider .wenda .wenda-tj p>a{
  130. color: rgb(182,182,182);
  131. }
  132. /* 底部左侧占2列 */
  133. main .firBox .bottom-menu{
  134. grid-column: span 2;
  135. }
  136. /* 底部左侧 */
  137. main .firBox .bottom-menu{
  138. display: grid;
  139. grid-template-columns: 100px 1fr;
  140. }
  141. main .firBox .bottom-menu .desc{
  142. display: grid;
  143. place-items: center;
  144. padding: 16px;
  145. }
  146. main .firBox .bottom-menu .desc span{
  147. color: rgb(153,153,153);
  148. font-size: 12px;
  149. }
  150. main .firBox .bottom-menu .detail{
  151. display: flex;
  152. place-content: space-between;
  153. place-items: center;
  154. }
  155. main .firBox .bottom-menu .detail img{
  156. width: 100%;
  157. grid-row: span 2;
  158. }
  159. main .firBox .bottom-menu .detail li{
  160. display: grid;
  161. grid-template-columns: 36px 85px;
  162. gap: 0 10px;
  163. }
  164. main .firBox .bottom-menu .detail li span{
  165. color: rgb(153,153,153);
  166. font-size: 12px;
  167. }
  168. /* 底部右侧 */
  169. main .firBox .attention .att{
  170. display: flex;
  171. place-content: space-between;
  172. place-items: center;
  173. gap:0 20px;
  174. width: 150px;
  175. margin: 15px auto;
  176. }
  177. main .firBox .attention .att li a .iconfont{
  178. font-size: 30px;
  179. color: rgb(153,153,153);
  180. }
  181. main .firBox .attention .att li a{
  182. display: grid;
  183. grid-template-rows: 30px 25px;
  184. place-items: center;
  185. }
  186. main .firBox .attention .att li a span{
  187. font-weight: bold;
  188. font-size: 12px;
  189. }
  190. /* 第二块 secBox */
  191. main .secBox{
  192. margin-top: 10px;
  193. }
  194. main .secBox .secTit{
  195. display: grid;
  196. grid-template-columns: 90px 80px;
  197. place-content: space-between;
  198. place-items: center;
  199. }
  200. main .secBox .secTit h2{
  201. font-size: 22px;
  202. font-weight: bold;
  203. color: #333;
  204. line-height: 40px;
  205. }
  206. main .secBox .secTit a{
  207. font: 18px;
  208. color: #999;
  209. background-color: #f0f1f4;
  210. width: 100%;
  211. text-align: center;
  212. border-radius: 20px;
  213. line-height: 30px;
  214. }
  215. main .secBox .courses{
  216. display: grid;
  217. grid-template-columns: repeat(5,224px);
  218. grid-template-rows: repeat(2,235px);
  219. place-content: space-between;
  220. place-items: center;
  221. row-gap: 20px;
  222. margin-top: 10px;
  223. }
  224. main .secBox .courses li{
  225. display: grid;
  226. grid-template-rows: 130px 1fr;
  227. background-color: #fff;
  228. border-radius: 10px;
  229. }
  230. main .secBox .courses li span{
  231. border-radius: 10px 10px 0 0;
  232. }
  233. main .secBox .courses li:first-of-type span{
  234. background: linear-gradient(to bottom right, RGB(72,118,230),RGB(153,101,235));
  235. }
  236. main .secBox .courses li:nth-of-type(2) span{
  237. background: linear-gradient(to bottom right, RGB(27,132,236),RGB(39,229,241));
  238. }
  239. main .secBox .courses li:nth-of-type(3) span{
  240. background: linear-gradient(to bottom right, RGB(237,73,106),RGB(255,182,96));
  241. }
  242. main .secBox .courses li:nth-of-type(4) span{
  243. background: linear-gradient(to bottom right, RGB(93,60,255),RGB(219,99,255));
  244. }
  245. main .secBox .courses li:nth-of-type(5) span{
  246. background: linear-gradient(to bottom right, RGB(70,129,252),RGB(81,43,240));
  247. }
  248. main .secBox .courses li:nth-of-type(6) span{
  249. background: linear-gradient(to bottom right, RGB(249,86,117),RGB(219,34,30));
  250. }
  251. main .secBox .courses li:nth-of-type(7) span{
  252. background: linear-gradient(to bottom right, RGB(255,112,155),RGB(254,70,105));
  253. }
  254. main .secBox .courses li:nth-of-type(8) span{
  255. background: linear-gradient(to bottom right, RGB(252,115,250),RGB(244,195,243));
  256. }
  257. main .secBox .courses li:nth-of-type(9) span{
  258. background: linear-gradient(to bottom right, RGB(247,151,30),RGB(255,210,0));
  259. }
  260. main .secBox .courses li:last-of-type span{
  261. background: linear-gradient(to bottom right, RGB(69,186,91),RGB(137,199,104));
  262. }
  263. main .secBox .courses li span a{
  264. color: #fff;
  265. font-weight: bold;
  266. font-size: 20px;
  267. text-align: center;
  268. padding: 35px 30px;
  269. display: table-cell;
  270. vertical-align: middle;
  271. }
  272. main .secBox .courses li dl{
  273. width: 188px;
  274. margin: auto;
  275. height: 105px;
  276. }
  277. main .secBox .courses li dl dt{
  278. margin-top: 18px;
  279. line-height: 25px;
  280. }
  281. main .secBox .courses li dl dt i{
  282. background-color: #E0E8FC;
  283. color: #298AFD;
  284. font-size: 11px;
  285. font-style: normal;
  286. padding: 2px 4px;
  287. border-radius: 2px;
  288. margin-right: 10px;
  289. }
  290. main .secBox .courses li dl dd{
  291. color: #b7b7b7;
  292. font-size: 12px;
  293. line-height: 30px;
  294. display: flex;
  295. place-content: space-between;
  296. }
  297. main .secBox .courses li dl dd em{
  298. font-style: normal;
  299. font-size: 12px;
  300. }
  301. main .secBox .courses li dl dd em a{
  302. color: #b7b7b7;
  303. padding-left:5px;
  304. }

5. 效果图


连续看了2天的教程,今天把这个作业全部做了一遍,到现在快晚上9点了才完成。虽然时间花得久,但是感触良多。感觉布局万物皆可grid,而且grid还能精简很多代码。

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:写的不错
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