• html+css仿制小米商城首页


    一、首先是学习心得

    简介:

    这是一个仅用css+html实现的页面,不过y页面也用css实现了一些精致的动态效果,比如

    1. 老版本小米官网的logo滑动效果
    2. 小米的二维码和购物车,导航栏延时下拉效果

    关于一些css常用的进阶知识

    1. box-shodow

    2.  display的几种用法                                                                                                                    除了常见的块元素和行内元素的切换,还有行内块的概念,更有使用display:none隐藏块元素,通过伪类:hover去修改可视性,提到的display:none,就不得不说它与visibility: hidden的区别,设置了display: none,那么该元素以及它的所有后代元素都会隐藏,隐藏后的元素无法点击,占据的空间消失;设置visibility: hidden也可以隐藏这个元素,但是隐藏元素仍需占用与未隐藏时一样的空间,也就是说虽然元素不可见了,但是仍然会影响页面布局。就比如这里的下拉框都是用disply:none,导航栏有个全部商品分类是visibility:hidden;关于可视化还有个overflow:hidden使用到了。

    3. 关于浮动和解除浮动效果,多次使用到clear:both,float,在使用claer属性时一般是用伪元素比如::before来实现。
    4. 更好的理解了position这个属性,尤其是position:abosult是以最近的开启position:relavetive的父元素原点为原点。
    5. 也使用了transitions这个带有延迟效果的属性
    6. 关于居中使用到了text-align:center,margin:0 auto;和height,line-height设置大小一样的效果,
    7. 关于背景尺寸,使用了box-sizing:border-box
    8. 关于优先级,因为下拉框,可能因为优先级问题导致出不来,所有设置下拉框效果时可能需要设置z-index:;
    9. 了解到了transparents这种透明颜色,和rgba这种不仅包含颜色还包含透明度的属性;
    10. 最后是关于图标字体和网站标题的引用,首先我是在阿里矢量库里下载的文件,导入项目文件,然后引用里面的css,通常在标签里应用相应的类来实现,然后网站标题icon需要下载相应的.ico的文件,然后通过.

    二、代码分享

    index.html

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>小米商城</title>
    6. <link rel="stylesheet" href="clear.css">
    7. <link rel="stylesheet" href="one.css">
    8. <!-- 字体图标 -->
    9. <link rel="stylesheet" href="./iconfont/iconfont.css">
    10. <link rel="stylesheet" href="all.css">
    11. <!-- 网页图标 -->
    12. <link rel="icon" href="mi.ico">
    13. </head>
    14. <body>
    15. <!-- 頂部導航條 -->
    16. <div class="topbar-wrapper">
    17. <!-- 内部容器 -->
    18. <!-- 左侧导航 -->
    19. <div class="topbar w">
    20. <ul class="service">
    21. <li>
    22. <a href="#">小米商場</a>
    23. </li>
    24. <li class="line"> | </li>
    25. <li>
    26. <a href="#">MIUI</a>
    27. </li>
    28. <li class="line"> | </li>
    29. <li>
    30. <a href="#">lOT</a>
    31. </li>
    32. <li class="line"> | </li>
    33. <li>
    34. <a href="#">雲服務</a>
    35. </li>
    36. <li class="line"> | </li>
    37. <li>
    38. <a href="#">金融</a>
    39. </li>
    40. <li class="line"> | </li>
    41. <li>
    42. <a href="#">有品</a>
    43. </li>
    44. <li class="line"> | </li>
    45. <li>
    46. <a href="#">小愛開發平台</a>
    47. </li>
    48. <li class="line"> | </li>
    49. <li>
    50. <a href="#">企業團購</a>
    51. </li>
    52. <li class="line"> | </li>
    53. <li>
    54. <a href="#">資質證照</a>
    55. </li>
    56. <li class="line"> | </li>
    57. <li>
    58. <a href="#">協議規則</a>
    59. </li>
    60. <li class="line"> | </li>
    61. <li>
    62. <a class="app" href="#">下載app
    63. <div class="qrcode">
    64. <img src="./小米二维码.jpg" alt="">
    65. <br />
    66. <span>小米商城app</span>
    67. </div>
    68. </a>
    69. </li>
    70. <li class="line"> | </li>
    71. <li>
    72. <a href="#">選擇你的地理位置</a>
    73. </li>
    74. </ul>
    75. <!-- 购物车 -->
    76. <ul class="show-car">
    77. <li><a href="#">
    78. <i class="iconfont">&#xe601;</i>
    79. 购物車(0)</a></li>
    80. <li class="ts">
    81. 购物车中还没有商品,赶快选购吧。
    82. </li>
    83. </ul>
    84. <!-- 用户登录注册 -->
    85. <ul class="user-info">
    86. <li>
    87. <a href="#">消息通知</a>
    88. </li>
    89. <li class="line">|</li>
    90. <li>
    91. <a href="#">注冊</a>
    92. </li>
    93. <li class="line">|</li>
    94. <li>
    95. <a href="#">登錄</a>
    96. </li>
    97. </ul>
    98. </div>
    99. </div>
    100. <!-- 创建外部头部容器 -->
    101. <div class="header-warpper">
    102. <div class="header w">
    103. <!-- 创建logo -->
    104. <h1 class="logo" title="小米">
    105. 小米商场
    106. <a class="home" href="#"></a>
    107. <a href="#" class="mi"></a>
    108. </h1>
    109. <!-- 导航条-->
    110. <div class="nav-warpper">
    111. <ul class="nav clearfix">
    112. <li class="all-goods-wrapper"><a class="all-goods" href="#">全部商品分类</a>
    113. <!-- 创建左侧导航-->
    114. <ul class="left-menu">
    115. <li><a href="#">手机 电话卡<i class="iconfont">&#xe625;</i></a></li>
    116. <li><a href="#">电视 盒子<i class="iconfont">&#xe625;</i></a></li>
    117. <li><a href="#">笔记本 平板<i class="iconfont">&#xe625;</i></a></li>
    118. <li><a href="#">家电 插线板<i class="iconfont">&#xe625;</i></a></li>
    119. <li><a href="#">出行 穿戴<i class="iconfont">&#xe625;</i></a></li>
    120. <li><a href="#">智能 路由器<i class="iconfont">&#xe625;</i></a></li>
    121. <li><a href="#">电源 配件<i class="iconfont">&#xe625;</i></a></li>
    122. <li><a href="#">健康 儿童<i class="iconfont">&#xe625;</i></a></li>
    123. <li><a href="#">耳机 音响<i class="iconfont">&#xe625;</i></a></li>
    124. <li><a href="#">生活 箱包<i class="iconfont">&#xe625;</i></a></li>
    125. </ul>
    126. </li>
    127. <li><a href="#1">小米手机</a></li>
    128. <li><a href="#1">Reimi 红米</a></li>
    129. <li><a href="#1">电视</a></li>
    130. <li><a href="#1">笔记本</a></li>
    131. <li><a href="#1">家电</a></li>
    132. <li><a href="#1">路由器</a></li>
    133. <li><a href="#1">智能硬件</a></li>
    134. <li><a href="#1">服务</a></li>
    135. <li><a href="#1">社区</a></li>
    136. <div class="goods-infos"></div>
    137. </ul>
    138. <div class="search-warpper">
    139. <form class="search" action="#">
    140. <input class="search-inp" type="text">
    141. <button class="search-bnt iconfont">&#xe613;</button>
    142. </form>
    143. </div>
    144. </div>
    145. </div>
    146. </div>
    147. <!-- 创建banner的容器 -->
    148. <div class="banner-wrapper">
    149. <div class="banner w">
    150. <ul class="img-list">
    151. <li><a href="#">
    152. <img src="./bannner1.png" alt=""></a></li>
    153. </ul>
    154. <div class="pointer">
    155. <a href="#"></a>
    156. <a href="#"></a>
    157. <a href="#"></a>
    158. <a href="#"></a>
    159. <a href="#"></a>
    160. </div>
    161. <div class="prev-next">
    162. <a class="prev" href=""></a>
    163. <a href="#" class="next"></a>
    164. </div>
    165. </div>
    166. </div>
    167. <div class="back-top">
    168. <ul >
    169. <li><i class="iconfont">&#xe692;</i>
    170. <div>手机App</div>
    171. </li>
    172. <li><i class="iconfont">&#xe692;</i>
    173. <div>个人中心</div>
    174. </li>
    175. <li><i class="iconfont">&#xec2e;</i>
    176. <div>人工客服</div>
    177. </li>
    178. <li><i class="iconfont">&#xe600;</i>
    179. <div>购物车</div>
    180. </li>
    181. </ul>
    182. </div>
    183. <!-- ad -->
    184. <div class="ad w">
    185. <ul class="short-cut">
    186. <li><a href="#"><i class="iconfont">&#xe637;</i>小米秒杀</a></li>
    187. <li><a href="#"><i class="iconfont">&#xe646;</i>企业团购</a></li>
    188. <li><a href="#"><i class="iconfont">&#xe647;</i>f卡通道</a></li>
    189. <li><a href="#"><i class="iconfont">&#xe647;</i>米粉卡</a></li>
    190. <li><a href="#"><i class="iconfont">&#xe637;</i>以旧换新</a></li>
    191. <li><a href="#"><i class="iconfont">&#xe638;</i>话费充值</a></li>
    192. </ul>
    193. <ul class="ad-img">
    194. <li><a href="#"><img src="./ad-1.jpg" alt=""></a></li>
    195. <li><a href="#"><img src="./ad-2.jpg" alt=""></a></li>
    196. <li><a href="#"><img src="./ad-3.jpg" alt=""></a></li>
    197. </ul>
    198. </div>
    199. <div class="black"></div>
    200. <div class="end w">
    201. <img src="./end.jpg" alt="">
    202. </div>
    203. </body>
    204. </html>

    one.css

    1. .topbar-wrapper{
    2. width: 100%;
    3. background-color: #333;
    4. height: 40px;
    5. line-height: 40px;
    6. }
    7. /* 左侧导航栏 */
    8. .service{
    9. float: left;
    10. }
    11. .show-car,.user-info{
    12. float: right;
    13. }
    14. .service li{
    15. float: left;
    16. }
    17. .show-car li,.user-info li{
    18. float: right;
    19. }
    20. .topbar a{
    21. font-size: 12px;
    22. color: #b0b0b0;
    23. display: block;
    24. }
    25. .topbar a:hover{
    26. color: #fff;
    27. }
    28. .topbar .line{
    29. color: #424242;
    30. margin: 0 8px;
    31. }
    32. .show-car a{
    33. width: 120px;
    34. background-color: #424242;
    35. text-align: center;
    36. height: 40px ;
    37. }
    38. .show-car{
    39. position: relative;
    40. }
    41. .show-car i{
    42. margin-right: 2px;
    43. }
    44. .show-car{
    45. margin-left: 25px;
    46. }
    47. .show-car:hover a{
    48. background-color: white;
    49. color: #ff6700;
    50. }
    51. .ts{
    52. position: absolute;
    53. padding: 30px;
    54. top:41px;
    55. left: -172px;
    56. width: 232px;
    57. hight:35px
    58. background-color: #fff;
    59. font-size: 10px;
    60. z-index: 99999;
    61. text-align: center;
    62. box-shadow: 0 0 1px 2px rgba(0,0,0,0.2);
    63. display: none;
    64. }
    65. .show-car:hover .ts,.ts:hover{
    66. display: inline-block;
    67. }
    68. .app{
    69. position: relative;
    70. }
    71. .app .qrcode{
    72. width: 124px;
    73. height: 0;
    74. background-color: white;
    75. line-height: 1px;
    76. text-align: center;
    77. box-shadow: 0 0 10px rgb(0,0,0,0.3);
    78. color: #333;
    79. position: absolute;
    80. left: -38px;
    81. transition: all 0.3s;
    82. overflow: hidden;
    83. }
    84. .app:hover::after,.app:hover .qrcode{
    85. display: block;
    86. height: 140px ;
    87. z-index: 9990;
    88. float: left;
    89. }
    90. .app:hover::after{
    91. border: 6px solid transparent;
    92. content: '';
    93. border-top: none;
    94. border-bottom-color: white;
    95. width: 0px;
    96. height: 0px;
    97. position: absolute;
    98. bottom: 0px;
    99. left: 0;
    100. right: 0;
    101. margin: auto;
    102. /* 设置过渡的样式 */
    103. }
    104. .qrcode img{
    105. width: 90px;
    106. height: 90px;
    107. margin: 17px;
    108. margin-bottom: 15px;
    109. }
    110. /* 设置中间的header */
    111. .header-warpper{
    112. height: 100px;
    113. width: 100%;
    114. position: relative;
    115. }
    116. .header .logo{
    117. margin-top: 22.5px;
    118. float: left;
    119. position: relative;
    120. width: 55px;
    121. height: 55px;
    122. overflow: hidden;
    123. text-indent: -9999px;
    124. }
    125. .header .logo a{
    126. position: absolute;
    127. left: 0;
    128. width: 55px;
    129. height: 55px;
    130. background-image: url(logo-mi2.png);
    131. background-size: 55px 55px;
    132. background-position: center;
    133. transition: left 0.3s;
    134. }
    135. .header .logo .home{
    136. left: -55px;
    137. background-image: url(./mi.jpg);
    138. background-size: 55PX 55PX;
    139. }
    140. .header .logo:hover .mi{
    141. left: 55px;
    142. }
    143. .header .logo:hover .home{
    144. left: 0;
    145. }
    146. .header .nav{
    147. float: left;
    148. padding-left: 57px;
    149. }
    150. .header .nav-warpper{
    151. float: left;
    152. margin-left: 10px;
    153. }
    154. .nav > li{
    155. float: left;
    156. }
    157. .all-goods-wrapper{
    158. position: relative;
    159. }
    160. /* 左侧导航条 */
    161. .left-menu{
    162. width: 234px;
    163. height: 436px;
    164. background-color: rgba(0,0,0,.6);
    165. position: absolute;
    166. z-index: 990;
    167. left: -120px;
    168. line-height: 1;
    169. padding-top: 20px;
    170. }
    171. .left-menu a{
    172. display: block;
    173. height: 40px;
    174. line-height:40px;
    175. color: white;
    176. font-size: 14px;
    177. padding: 1px 0;
    178. }
    179. .nav li a:hover{
    180. color: #ff6700;
    181. }
    182. .left-menu li a:hover{
    183. background-color: #ff6700;
    184. color: white;
    185. }
    186. .left-menu li:hover{
    187. background-color: #ff6700;
    188. color: white;
    189. }
    190. .left-menu a i{
    191. float: right;
    192. }
    193. .header .nav{
    194. z-index: 10000;
    195. height: 100px;
    196. line-height: 100px;
    197. }
    198. .nav li a{
    199. display: block;
    200. font-size: 15px;
    201. margin-right: 20px;
    202. z-index: 999999;
    203. }
    204. .all-goods{
    205. visibility: hidden;
    206. }
    207. .nav .goods-infos{
    208. height: 226px;
    209. position: absolute;
    210. top:100px;
    211. left: 0;
    212. height: 0;
    213. width: 100%;
    214. transition: height 0.3s;
    215. background-size: 100% 200px;
    216. background-image: url(./下滑框.jpg);
    217. z-index: 99999;
    218. }
    219. .nav li:not(:nth-of-type(10),:nth-of-type(1)):hover ~.goods-infos,.goods-infos:hover{
    220. height: 226px;
    221. border-top: 1px solid silver;
    222. box-shadow: 0 5px 3px rgba(0,0,0,0.2);
    223. }
    224. .search-warpper{
    225. width: 296px;
    226. height: 51px;
    227. float: left;
    228. margin-top: 25px;
    229. margin-left: 10px;
    230. border: 1px solid rgb(224,224,224);
    231. }
    232. .search-warpper .search-bnt{
    233. float: left;
    234. height: 51px;
    235. width: 53px;
    236. border: #b0b0b0;
    237. }
    238. .search-warpper .search-inp{
    239. padding-left: 10px;
    240. float: left;
    241. display: block;
    242. border: none;
    243. width: 243px;
    244. height: 50px;
    245. border-color: #b0b0b0;
    246. font-size: 15px;
    247. box-sizing: border-box;
    248. border: 1px solid rgb(224,224,224);
    249. border-right: none;
    250. outline: none;
    251. }
    252. .search-warpper .search-inp:focus{
    253. outline: 1px solid #ff6700;
    254. }
    255. .search-warpper .search-bnt:hover{
    256. border-color:silver;
    257. background-color: #ff6700;
    258. color: white;
    259. }
    260. .banner{
    261. position: relative;
    262. height: 537px;
    263. margin: 0 auto;
    264. z-index: 1;
    265. }
    266. .banner img{
    267. width: 100%;
    268. vertical-align: top;
    269. }
    270. .banner .img-list{
    271. position: absolute;
    272. }
    273. .pointer{
    274. position: absolute;
    275. bottom: 100px;
    276. right: 135px;
    277. }
    278. .pointer a{
    279. float: left;
    280. margin-left: 6px;
    281. width: 6px;
    282. height: 6px;
    283. background-color: rgba(0,0,0,0.4);
    284. border: 3px rgba(255,255,255,0.4) solid;
    285. border-radius: 50%;
    286. }
    287. .pointer a:hover,.pointer a:active{
    288. border-color: rgba(0,0,0,0.4);
    289. background-color: rgba(255,255,255,0.4);
    290. }
    291. .prev-next a{
    292. width: 41px;
    293. height: 69px;
    294. background-image: url(箭头图.png);
    295. background-color: #333;
    296. position: absolute;
    297. top: 0;
    298. bottom: 0;
    299. margin: auto 0;
    300. }
    301. .prev-next .next{
    302. left: 257px;
    303. background-position: -84px 0;
    304. }
    305. .prev-next .prev{
    306. right: 0;
    307. background-position: -125px 0;
    308. }
    309. .back-top{
    310. width: 66px;
    311. height: 232px;
    312. position: fixed;
    313. bottom: 60px;
    314. right: 50px;
    315. }
    316. .back-top li{
    317. padding-top: 11px;
    318. border: 1px solid #f5f5f5;
    319. text-align: center;
    320. }
    321. .ad{
    322. height: 170px;
    323. margin-top: 14px;
    324. position: relative;
    325. }
    326. .ad-img{
    327. float: left;
    328. }
    329. .ad .ad-img li{
    330. display: inline-block;
    331. }
    332. .ad .short-cut li{
    333. display: inline-block;
    334. width: 75px;
    335. }
    336. .ad .short-cut li:last-child{
    337. margin-right: 0;
    338. }
    339. .ad .short-cut i{
    340. display: block;
    341. font-size: 20px;
    342. color: white;
    343. text-align: center;
    344. }
    345. .ad .short-cut a{
    346. color: white;
    347. font-size: 15px;
    348. display: inline-block;
    349. height: 80px;
    350. margin: 0 7px;
    351. margin-top: 10px;
    352. }
    353. .ad .short-cut{
    354. width: 234px;
    355. height: 170px;
    356. background-color: #5f5750;
    357. margin-left: 14px;
    358. position: relative;
    359. left: -12px;
    360. }
    361. .ad .ad-img li{
    362. width: 316px;
    363. margin-left: 10px;
    364. }
    365. .ad .ad-img{
    366. position: absolute;
    367. left: 235px;
    368. top:-1px;
    369. }
    370. .ad .ad-img img{
    371. width: 100%;
    372. vertical-align: top;
    373. }
    374. .black{
    375. background-color: #f5f5f5;
    376. margin-top: 50px;
    377. width: 100%;
    378. }
    379. .end{
    380. width: 1226px;
    381. }

    all.css

    1. .w{
    2. width: 1226px;
    3. margin: 0 auto;
    4. }

    clear.css

    1. *{
    2. padding: 0;
    3. margin: 0;
    4. }
    5. li{
    6. list-style: none;
    7. }
    8. a{
    9. text-decoration: none;
    10. color: #000;
    11. }
    12. .clearfix::after,.clearfix::before{
    13. content: "";
    14. display: table;
    15. clear: both;
    16. }
    17. body{
    18. font: 14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
    19. color: #333;
    20. min-width: 1226px;
    21. }

    三、运行效果

     一些效果具体:

    网站标题

    下拉二维码(有延时效果)

    类似的

      

     还有一些fixed定位和:hoverd的字体和背景背景颜色变化效果。

    最后本人的一个心结:给css中的类起名时语义化非常重要。

    源码下载:链接:https://pan.baidu.com/s/1ZDE_RwoVguR6wd46cmpBVg?pwd=2e1t 
    提取码:2e1t

  • 相关阅读:
    信创JAVAWEB的相关记录
    Aviator表达式引擎
    Python常见设计模式库之python-patterns使用详解
    HCIA-datacom 4.3 实验三:网络地址转换配置实验
    如何在mac上安装多版本python并配置PATH
    二叉树的前序遍历
    cmmi3级资质认证办理流程是什么?周期多久
    最大后验估计MAP
    Linux上如何部署SpringBoot项目——手把手教会你
    第四章《类与对象》第2节:方法的定义
  • 原文地址:https://blog.csdn.net/m0_53394907/article/details/126515103