Blogger Information
Blog 25
fans 0
comment 0
visits 13755
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
用grid和flex实现淘宝的移动端首页布局
安超
Original
793 people have browsed it

1.实现淘宝的移动端首页布局,主要掌握几个方面

a. grid 默认状态为垂直向布局,flex默认状态为水平向布局
b. 注意两种布局模式下place-content和place-items的区别.

2.淘宝首页移动端布局的html代码如下:

  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. <link rel="stylesheet" href="taobao-1101-1.css">
  8. <link rel="stylesheet" href="//at.alicdn.com/t/c/font_3746153_xhvv3nimlgp.css">
  9. <title>我自己的模拟淘宝手机端页面</title>
  10. </head>
  11. <body>
  12. <!-- 头部信息 -->
  13. <header>
  14. <a href="https://www.taobao.com" class="logo"><img src="./taobao.png" alt=""> </a>
  15. <a href="#" class="search">
  16. <span>输入搜索的内容</span>
  17. <span>搜索</span>
  18. </a>
  19. <a href="#" class="iconfont icon-register"> </a>
  20. </header>
  21. <!-- 主体信息 -->
  22. <main>
  23. <ul class="navs">
  24. <li class="item">
  25. <a href=""><img src="images/navs/tmxb.webp" alt="" /></a>
  26. <a href="">天猫新品</a>
  27. </li>
  28. <li class="item">
  29. <a href=""><img src="images/navs/jrbk.webp" alt="" /></a>
  30. <a href="">今日爆款</a>
  31. </li>
  32. <li class="item">
  33. <a href=""><img src="images/navs/tmgj.webp" alt="" /></a>
  34. <a href="">天猫国际</a>
  35. </li>
  36. <li class="item">
  37. <a href=""><img src="images/navs/fzlx.webp" alt="" /></a>
  38. <a href="">飞猪旅行</a>
  39. </li>
  40. <li class="item">
  41. <a href=""><img src="images/navs/tmcx.webp" alt="" /></a>
  42. <a href="">天猫超市</a>
  43. </li>
  44. <li class="item">
  45. <a href=""><img src="images/navs/tbch.webp" alt="" /></a>
  46. <a href="">淘宝吃货</a>
  47. </li>
  48. <li class="item">
  49. <a href=""><img src="images/navs/sqk.webp" alt="" /></a>
  50. <a href="">省钱卡</a>
  51. </li>
  52. <li class="item">
  53. <a href=""><img src="images/navs/ltjb.webp" alt="" /></a>
  54. <a href="">领淘金币</a>
  55. </li>
  56. <li class="item">
  57. <a href=""><img src="images/navs/alpm.webp" alt="" /></a>
  58. <a href="">阿里拍卖</a>
  59. </li>
  60. <li class="item">
  61. <a href=""><img src="images/navs/fl.webp" alt="" /></a>
  62. <a href="">分类</a>
  63. </li>
  64. </ul>
  65. <!-- 快捷入口 -->
  66. <ul class="entry">
  67. <li class="item">
  68. <div class="title">
  69. <h3>聚划算</h3>
  70. <span>品牌折扣</span>
  71. </div>
  72. <a href=""><img src="images/items/item-1.webp" alt=""> </a>
  73. <a href=""><img src="images/items/item-2.webp" alt=""></a>
  74. </li>
  75. <!-- 第二个 -->
  76. <li class="item">
  77. <div class="title">
  78. <h3>天天特卖</h3>
  79. <span>1元秒杀</span>
  80. </div>
  81. <a href=""><img src="images/items/item-3.webp" alt="" /></a>
  82. <a href=""><img src="images/items/item-4.webp" alt="" /></a>
  83. </li>
  84. <!-- 第三个 -->
  85. <li class="item">
  86. <div class="title">
  87. <h3>有好货</h3>
  88. <span>好口碑</span>
  89. </div>
  90. <a href=""><img src="images/items/item-5.webp" alt="" /></a>
  91. <a href=""><img src="images/items/item-6.webp" alt="" /></a>
  92. </li>
  93. <!-- 第四个 -->
  94. <li class="item">
  95. <div class="title">
  96. <h3>每日好店</h3>
  97. <span>特色</span>
  98. </div>
  99. <a href=""><img src="images/items/item-7.webp" alt="" /></a>
  100. <a href=""><img src="images/items/item-8.webp" alt="" /></a>
  101. </li>
  102. </ul>
  103. <!-- 产品入口 -->
  104. <ul class="product">
  105. <!-- 第一个产品 -->
  106. <li class="item">
  107. <a href=""><img src="images/items/item-9.webp" alt=""></a>
  108. <div class="desc">
  109. <a href="">产品简介产品简介产品简介产品简介</a>
  110. <div class="price">
  111. <span class="iconfont icon-money">20</span>
  112. <span>200人已经购买</span>
  113. </div>
  114. </div>
  115. </li>
  116. <li class="item">
  117. <a href=""><img src="images/items/item-11.webp" alt=""></a>
  118. <div class="desc">
  119. <a href="">产品简介产品简介产品简介产品简介</a>
  120. <div class="price">
  121. <span class="iconfont icon-money">3</span>
  122. <span>22人已经购买</span>
  123. </div>
  124. </div>
  125. </li>
  126. <li class="item">
  127. <a href=""><img src="images/items/item-10.webp" alt=""></a>
  128. <div class="desc">
  129. <a href="">产品简介产品简介产品简介产品简介</a>
  130. <div class="price">
  131. <span class="iconfont icon-money">14</span>
  132. <span>23人已经购买</span>
  133. </div>
  134. </div>
  135. </li>
  136. </ul>
  137. </main>
  138. <!-- 尾部信息 -->
  139. <footer>
  140. <a href="" class="iconfont icon-taobao"></a>
  141. <a href="">
  142. <span class="iconfont icon-gouwuchekong "></span>
  143. <span>购物车</span>
  144. </a>
  145. <a href="">
  146. <span class="iconfont icon-taobao-square-fill"></span>
  147. <span>我的淘宝</span>
  148. </a>
  149. </footer>
  150. </body>
  151. </html>
  1. /* 网页通用设置 */
  2. *{
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. /* 针对手机移动端 */
  8. html{
  9. font-size: calc(100vw / 3.75);
  10. }
  11. body{
  12. margin: 0;
  13. padding: 0;
  14. font-size: 0.13rem;
  15. margin: auto;
  16. background-color: #f5f5f5;
  17. }
  18. /* 主体通用设置 */
  19. body img{
  20. width:100%;
  21. }
  22. body a{
  23. text-decoration: none;
  24. }
  25. body li{
  26. list-style: none;
  27. }
  28. /* 头部和尾部设置为grid样式 */
  29. header,footer{
  30. display: grid;
  31. }
  32. /* 头部设置 头部为三列一行 */
  33. header{
  34. grid-template-columns: 0.6rem 1fr 0.33rem;
  35. height: 0.3rem;
  36. place-items:center;
  37. position:fixed;
  38. top: 0;
  39. right: 0;
  40. left: 0;
  41. z-index: 1; /* 需要z-index,否则的话,main向上滚动时,会显示出来*/
  42. border-radius: 0 0 0.1rem 0.1rem;
  43. }
  44. footer{
  45. grid-template-columns: 0.6rem 1fr 0.33rem;
  46. height: 0.3rem;
  47. place-items:center;
  48. position:fixed;
  49. bottom: 0;
  50. right: 0;
  51. left: 0;
  52. z-index: 2;
  53. border-radius: 0 0 0.1rem 0.1rem;
  54. }
  55. /* 头部第一列设置 */
  56. header .logo{
  57. padding-left: 0.06rem;
  58. }
  59. header .logo img{
  60. height: 0.13rem;
  61. }
  62. /* 中间search 框的设置 */
  63. header .search{
  64. width: 100%; /* 必须有这个,否则的话,seach 框会变小*/
  65. border: 1px solid red;
  66. border-radius: 10px;
  67. display: flex;
  68. place-content: space-between;
  69. }
  70. header a.search span:last-of-type{
  71. margin-right: 10px;
  72. border-radius: 0.05rem;
  73. padding-left: 0.1rem;
  74. padding-right: 0.05rem;
  75. background: linear-gradient(to left,#66ffff,#66ff00 );
  76. }
  77. header a.search{
  78. text-decoration: none;
  79. }
  80. /* header最有一列图片的设置 */
  81. header .iconfont.icon-register{
  82. height: 0.1rem;
  83. padding-right: 0.1rem;
  84. color:red;
  85. }
  86. /* 以下为main的css样式 */
  87. main{
  88. /* height: 2000px; */
  89. /* overflow: hidden; */
  90. /* margin-top: 0.12rem; */
  91. /* margin-bottom: 0.4rem; */
  92. padding-bottom: 0.2rem;
  93. padding-top: 0.12rem;
  94. }
  95. /* 快捷方式入口 */
  96. main .navs{
  97. /* 布局方式为grid */
  98. display: grid;
  99. grid-template-columns: repeat(5,1fr);
  100. place-items: center;
  101. margin: 0.2rem;
  102. border-radius: 0.1rem;
  103. background-color:#ffffff;
  104. }
  105. main .navs .item{
  106. list-style: none;
  107. display: grid;
  108. place-content: center;
  109. place-items: center;
  110. }
  111. /* 第二个入口 */
  112. main .entry{
  113. margin: 0.2rem;
  114. border-radius: 0.1rem;
  115. display: grid;
  116. grid-template-columns: repeat(2,1fr);
  117. grid-template-rows: repeat(2,1fr);
  118. background-color: #ffffff;
  119. }
  120. main .entry .item{
  121. padding: 0.2rem;;
  122. display: grid;
  123. }
  124. main .entry .item .title{
  125. grid-column-start: 1;
  126. grid-column-end: 3;
  127. display: flex;
  128. place-items: center; /* 让h3和span垂直对齐*/
  129. }
  130. main .entry .item .title span{
  131. color:white;
  132. margin-left: 0.1rem;
  133. padding: 0.02rem;
  134. background-color:orangered;
  135. border-radius: 0.1rem;
  136. }
  137. main .entry .item:nth-of-type(3) .title span{ /* 设置第三个的背景色*/
  138. background-color:deepskyblue ;
  139. }
  140. main .entry .item:nth-of-type(4) .title span{ /* 设置第四个的背景色*/
  141. background-color:orange ;
  142. }
  143. /* 商品列表 */
  144. main .product{
  145. margin: 0.2rem;
  146. border-radius: 0.1rem;
  147. display: grid;
  148. gap: 0.1rem;
  149. grid-template-columns: repeat(2,1fr);
  150. background-color: #ffffff;
  151. }
  152. main .product .item .desc{
  153. display: grid;
  154. }
  155. main .product .item .desc span:first-of-type{
  156. color:brown;
  157. font-size: smaller;
  158. }
  159. main .product .item .desc span:last-of-type{
  160. margin-left: 0.1rem;
  161. }
  162. /* 底部部分 */
  163. footer{
  164. grid-template-columns: repeat(3,1fr);
  165. height: 0.4rem;
  166. background-color: #66ff00;
  167. }
  168. footer .iconfont.icon-taobao{
  169. font-size:0.3rem;
  170. color: red;
  171. }
  172. footer a{
  173. display: grid;
  174. place-items: center;
  175. }
  176. /* 媒体端设置 */
  177. @media (max-width:320px){
  178. html{
  179. font-size: 85px;
  180. }
  181. }
  182. @media (min-width:640px){
  183. html{
  184. font-size: 170px;
  185. }
  186. }

3.效果图如下所示:

淘宝首页的移动端实现

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