0


携程网移动端首页制作(html5+css3)

1.预期完成效果

主要是自己做记录,记录做的过程以及遇到的一些问题

2.开始制作

2.1 搜索框的制作

1.首先引入normal.css(Normalize.css: Make browsers render all elements more consistently.)。其中搜索符号使用图标,阿里图标(iconfont-阿里巴巴矢量图标库):打开网址搜索需要的图标,添加到自己的项目中,点击“download code” ,下载后将压缩包放进项目中进行解压使用。

2.遇到的问题:手机模式下搜索框显示不完全

解决:给搜索框最大的盒子添加width:100%;

2.2 导航栏的制作

1.上面为图标,下面为文字的,可以采用flex布局将主轴设置成y轴,然后将侧轴设置为居中对齐。

2.渐变色的制作:background: -webkit-linear-gradient(起始方向 颜色1, 颜色2,...);

3.flex:wrap;换行

2.3销售模块制作

1.分为两个盒子,采用flex布局,各占50%

2.遇到的问题:

(1)在切换为移动设备仿真时,页面显示不完全,如图

修改了<head></head>标签中的 <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=0.7,user-scalable=yes,maximum-scale=1.0,minimum-scale=0.7">,将原本的1.0替换成了0.7,虽然可以正常显示了,但是不知道有没有更好的方法。

(2)写“权威排行榜”的时候样式突然不起效果,如图

后来发现自己html代码中把它的类名写错位置了,写在了href里面哈哈哈哈我还疑惑了半天

(3)滚动的时候搜索框无法显示在最上面,如图

给搜索框的大盒子添加 z-index: 1;置于最上层

2.4 底部图片

1.准备一个盒子,放一张图片

2.5 底部工具模块

1.需要下载新图标;小竖线采用伪类选择器做;&nbsp;空格符号

2.遇到的问题:

(1)在做“网站地图”和“电脑版”中间那根小竖线时,用的after伪类选择器,采用定位,但是一直没有内容,后面发现是把background-color写成了color

(2)2022前面的那个符号不会写,不知道是怎么来的

2.6 底部导航栏模块

1.大盒子用flex布局,每个占25%;小盒子为一个图标加文字,采用flex布局,将主轴设置成y轴;图标是精灵图

3. 代码部分

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"
  7. content="width=device-width,user-scalable=no,initial-scale=0.7,user-scalable=yes,maximum-scale=1.0,minimum-scale=0.7">
  8. <!-- 引入我们的css初始化文件 -->
  9. <link rel="stylesheet" href="css/normalize.css">
  10. <link rel="stylesheet" href="css/index.css">
  11. <title>携程旅行-酒店预订,机票预订查询</title>
  12. </head>
  13. <body>
  14. <!-- 搜索框 -->
  15. <div class="search-box">
  16. <div class="search">
  17. <i class="iconfont icon">&#xe651;</i>
  18. <span>搜索:目的地/酒店/景点/航班号</span>
  19. </div>
  20. </div>
  21. <!-- 导航栏 -->
  22. <nav>
  23. <ul class="nav-entry">
  24. <li class="nav-entry-li1">
  25. <a href="#">
  26. <span class="nav-entry-icon1"></span>
  27. <span>酒店</span>
  28. </a>
  29. </li>
  30. <li class="nav-entry-li2">
  31. <a href="#">
  32. <span class="nav-entry-icon2"></span>
  33. <span>机票</span>
  34. </a>
  35. </li>
  36. <li class="nav-entry-li3">
  37. <a href="#">
  38. <span class="nav-entry-icon3"></span>
  39. <span>火车票</span>
  40. </a>
  41. </li>
  42. <li class="nav-entry-li4">
  43. <a href="#">
  44. <span class="nav-entry-icon4"></span>
  45. <span>旅游</span>
  46. </a>
  47. </li>
  48. <li class="nav-entry-li5">
  49. <a href="#">
  50. <span class="nav-entry-icon5"></span>
  51. <span>攻略景点</span>
  52. </a>
  53. </li>
  54. <li class="nav-entry-li6">
  55. <a href="#">
  56. <span class="nav-entry-icon6"></span>
  57. <span>民宿/客栈</span>
  58. </a>
  59. </li>
  60. <li class="nav-entry-li7">
  61. <a href="#">
  62. <span class="nav-entry-icon7"></span>
  63. <span>机+酒</span>
  64. </a>
  65. </li>
  66. <li class="nav-entry-li8">
  67. <a href="#">
  68. <span class="nav-entry-icon8"></span>
  69. <span>汽车/船票</span>
  70. </a>
  71. </li>
  72. <li class="nav-entry-li9">
  73. <a href="#">
  74. <span class="nav-entry-icon9"></span>
  75. <span>门票/活动</span>
  76. </a>
  77. </li>
  78. <li class="nav-entry-li10">
  79. <a href="#">
  80. <span class="nav-entry-icon10"></span>
  81. <span>美食</span>
  82. </a>
  83. </li>
  84. <li class="nav-entry-li11">
  85. <a href="#">
  86. <span class="nav-entry-icon11"></span>
  87. <span>特价/爆款</span>
  88. </a>
  89. </li>
  90. <li class="nav-entry-li12">
  91. <a href="#">
  92. <span class="nav-entry-icon12"></span>
  93. <span>接送机/包车</span>
  94. </a>
  95. </li>
  96. <li class="nav-entry-li13">
  97. <a href="#">
  98. <span class="nav-entry-icon13"></span>
  99. <span>租车</span>
  100. </a>
  101. </li>
  102. <li class="nav-entry-li14">
  103. <a href="#">
  104. <span class="nav-entry-icon14"></span>
  105. <span>周边游</span>
  106. </a>
  107. </li>
  108. <li class="nav-entry-li15">
  109. <a href="#">
  110. <span class="nav-entry-icon15"></span>
  111. <span>购物/免税</span>
  112. </a>
  113. </li>
  114. </ul>
  115. </nav>
  116. <!-- 销售模块 -->
  117. <div class="sales">
  118. <div class="salse-hd">
  119. <!-- 左边 -->
  120. <div class="sales-tejia">
  121. <div class="tejia-hd">
  122. <a href="#" class="tejia-hd-zuo"></a>
  123. <a href="#" class="tejia-hd-you">特价好货直播中</a>
  124. </div>
  125. <div class="tejia-bd">
  126. <a href="#"></a>
  127. </div>
  128. <div class="tejia-ft">
  129. <a href="#"></a>
  130. <a href="#">660</a>
  131. </div>
  132. </div>
  133. <!-- 右边 -->
  134. <div class="sales-rank">
  135. <div class="rank-hd">
  136. <a href="#" class="rank-hd-zuo"></a>
  137. <a href="#" class="rank-hd-you">权威排行榜</a>
  138. </div>
  139. <div class="rank-bd">
  140. <div class="rank-bd-zuo">
  141. <a href="#" class="tu"></a>
  142. <span class="tubiao">上海</span>
  143. <span class="text">上海10大奢华酒店</span>
  144. </div>
  145. <div class="rank-bd-you">
  146. <a href="#" class="tu"></a>
  147. <span class="tubiao">上海</span>
  148. <span class="text">上海亲子乐园酒店榜</span>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. <!-- 底部图片 -->
  155. <div class="bottom-img">
  156. <a href="#"></a>
  157. </div>
  158. <!-- 底部功能模块 -->
  159. <div class="toolbox">
  160. <div class="tool-group">
  161. <a href="#" class="link">
  162. <span class="iconfont">&#xe88b;</span>
  163. <span>电话预订</span>
  164. </a>
  165. <a href="#" class="download">
  166. <span class="iconfont">&#xe668;</span>
  167. <span>下载携程</span>
  168. </a>
  169. </div>
  170. <div class="tool-text">
  171. <a href="#" class="zuo">网站地图</a>
  172. <a href="#">电脑版</a>
  173. <p>c2022携程旅行 &nbsp;泸ICP备08023580号</p>
  174. </div>
  175. </div>
  176. <!-- 底部导航栏 -->
  177. <!-- 局部导航栏 -->
  178. <ul class="bottom-nav">
  179. <li>
  180. <a href="#">
  181. <span class="local-nav-icon-icon1"></span>
  182. <span>首页</span>
  183. </a>
  184. </li>
  185. <li>
  186. <a href="#">
  187. <span class="local-nav-icon-icon2"></span>
  188. <span>社区</span>
  189. </a>
  190. </li>
  191. <li>
  192. <a href="#">
  193. <span class="local-nav-icon-icon3"></span>
  194. <span>消息</span>
  195. </a>
  196. </li>
  197. <li>
  198. <a href="#">
  199. <span class="local-nav-icon-icon4"></span>
  200. <span>我的</span>
  201. </a>
  202. </li>
  203. </ul>
  204. </body>
  205. </html>

css代码

  1. body {
  2. color: #000;
  3. /* 防止水平滚动条出现 */
  4. overflow-x: hidden;
  5. /* 防止一些元素点击之后背景会高亮 */
  6. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  7. -webkit-text-size-adjust: none;
  8. max-width: 540px;
  9. min-width: 320px;
  10. margin: 0 auto;
  11. font: normal 14px/1.5 PingFangSC-regular, Tahoma, Lucida Grande, Verdana, Microsoft Yahei, STXihei, hei;
  12. background: #f4f4f4;
  13. }
  14. div {
  15. box-sizing: border-box;
  16. }
  17. ul li {
  18. list-style: none;
  19. }
  20. a {
  21. text-decoration: none;
  22. }
  23. @font-face {
  24. font-family: 'iconfont';
  25. src: url('../fonts/iconfont.woff2?t=1662898789972') format('woff2'),
  26. url('../fonts/iconfont.woff?t=1662898789972') format('woff'),
  27. url('../fonts/iconfont.ttf?t=1662898789972') format('truetype');
  28. }
  29. .iconfont {
  30. font-family: "iconfont" !important;
  31. font-size: 16px;
  32. font-style: normal;
  33. -webkit-font-smoothing: antialiased;
  34. -moz-osx-font-smoothing: grayscale;
  35. }
  36. /* 搜索框 */
  37. .search-box {
  38. /* 因为滚动时一直保持在上面,所以用固定定位 */
  39. position: fixed;
  40. /* 在页面最上层 */
  41. z-index: 1;
  42. top: 0;
  43. display: flex;
  44. width: 100%;
  45. height: 50px;
  46. max-width: 540px;
  47. min-width: 320px;
  48. background-color: #fff;
  49. }
  50. .search {
  51. flex: 1;
  52. width: 516px;
  53. height: 32px;
  54. border: 1.5px solid #377ab1;
  55. border-radius: 16px;
  56. margin: 10px;
  57. }
  58. .search .icon {
  59. position: absolute;
  60. top: 11px;
  61. left: 24px;
  62. font-size: 20px;
  63. }
  64. .search span {
  65. position: absolute;
  66. top: 13px;
  67. left: 53px;
  68. color: #a2a2a2;
  69. font-size: 16px;
  70. }
  71. /* 导航栏模块 */
  72. nav {
  73. margin-top: 50px;
  74. height: 184px;
  75. width: 100%;
  76. }
  77. .nav-entry {
  78. display: flex;
  79. padding: 6px 12px 2px;
  80. background-color: #fff;
  81. /* 换行 */
  82. flex-wrap: wrap;
  83. /* 因为没有宽度所以只写上面这一句不会换行 将flex写成百分比,相对于父级来说*/
  84. }
  85. .nav-entry li [class^="nav-entry-icon"] {
  86. width: 28px;
  87. height: 28px;
  88. margin-top: 4px;
  89. background-size: 28px auto;
  90. }
  91. .nav-entry-icon1 {
  92. background: url(../images/hotel.png) no-repeat;
  93. }
  94. .nav-entry-icon2 {
  95. background: url(../images/flight.png) no-repeat;
  96. }
  97. .nav-entry-icon3 {
  98. background: url(../images/train_ticket.png) no-repeat;
  99. }
  100. .nav-entry-icon4 {
  101. background: url(../images/vacation.png) no-repeat;
  102. }
  103. .nav-entry-icon5 {
  104. background: url(../images/gs.png) no-repeat;
  105. }
  106. .nav-entry-icon6 {
  107. background: url(../images/hotel_inn.png) no-repeat;
  108. }
  109. .nav-entry-icon7 {
  110. background: url(../images/flight_package.png) no-repeat;
  111. }
  112. .nav-entry-icon8 {
  113. background: url(../images/bus_ticket.png) no-repeat;
  114. }
  115. .nav-entry-icon9 {
  116. background: url(../images/ticket.png) no-repeat;
  117. }
  118. .nav-entry-icon10 {
  119. background: url(../images/food.png) no-repeat;
  120. }
  121. .nav-entry-icon11 {
  122. background: url(../images/hotel_sale.png) no-repeat;
  123. }
  124. .nav-entry-icon12 {
  125. background: url(../images/airport_transfer.png) no-repeat;
  126. }
  127. .nav-entry-icon13 {
  128. background: url(../images/car.png) no-repeat;
  129. }
  130. .nav-entry-icon14 {
  131. background: url(../images/weekend.png) no-repeat;
  132. }
  133. .nav-entry-icon15 {
  134. background: url(../images/shop.png) no-repeat;
  135. }
  136. .nav-entry [class^="nav-entry-li"] {
  137. flex: 18%;
  138. border-right: 1px solid #fff;
  139. border-bottom: 1px solid #fff;
  140. }
  141. .nav-entry-li1 {
  142. border-radius: 8px 0 0 0;
  143. /* 渐变色 */
  144. background: -webkit-linear-gradient(#fb5f53, #fc8251);
  145. }
  146. .nav-entry-li2 {
  147. background: -webkit-linear-gradient(#3e87fa, #4facf9);
  148. }
  149. .nav-entry-li3 {
  150. background: -webkit-linear-gradient(#6084fe, #6aa1ff);
  151. }
  152. .nav-entry-li4 {
  153. background: -webkit-linear-gradient(#32c5b5, #4ed5b4);
  154. }
  155. .nav-entry-li5 {
  156. border-radius: 0 8px 0 0;
  157. background: -webkit-linear-gradient(#ff8c39, #ffa338);
  158. }
  159. .nav-entry-li6,
  160. .nav-entry-li11 {
  161. background-color: #fff6f1;
  162. }
  163. .nav-entry-li11 {
  164. border-radius: 0 0 0 8px;
  165. }
  166. .nav-entry-li7,
  167. .nav-entry-li12 {
  168. background-color: #f1f8ff;
  169. }
  170. .nav-entry-li8,
  171. .nav-entry-li13 {
  172. background-color: #f2f4ff;
  173. }
  174. .nav-entry-li9,
  175. .nav-entry-li14 {
  176. background-color: #ecfcf9;
  177. }
  178. .nav-entry-li10,
  179. .nav-entry-li15 {
  180. background-color: #fff8f3;
  181. }
  182. .nav-entry-li15 {
  183. border-radius: 0 0 8px 0;
  184. }
  185. .nav-entry a {
  186. display: flex;
  187. flex-direction: column;
  188. align-items: center;
  189. font-size: 13px;
  190. color: #fff;
  191. }
  192. .nav-entry [class^="nav-entry-li"]:nth-child(n+6) a {
  193. color: #2d2824;
  194. }
  195. /* 销售模块 */
  196. .sales {
  197. display: flex;
  198. width: 100%;
  199. }
  200. .salse-hd {
  201. display: flex;
  202. flex: 1;
  203. }
  204. /* 特价直播 */
  205. .sales-tejia {
  206. height: 148px;
  207. flex: 50%;
  208. background-color: #fff;
  209. border-radius: 8px;
  210. margin: -7px 16px;
  211. }
  212. .tejia-hd {
  213. position: relative;
  214. }
  215. .tejia-hd-zuo {
  216. display: inline-block;
  217. width: 73px;
  218. height: 20px;
  219. background: url(../images/salezb.png) no-repeat;
  220. background-size: 73px auto;
  221. margin: 6px;
  222. }
  223. .tejia-hd-you {
  224. position: absolute;
  225. top: 8px;
  226. right: 9px;
  227. display: inline-block;
  228. width: 84px;
  229. height: 18px;
  230. color: #ff4607;
  231. font-size: 12px;
  232. background-color: #ffebe3;
  233. padding: 1px 4px;
  234. border-radius: 2px;
  235. }
  236. .tejia-bd a {
  237. display: inline-block;
  238. width: 230px;
  239. height: 84px;
  240. border-radius: 8px;
  241. margin-left: 6px;
  242. background: url(../upload/02018120008mxmb3g3DDF_D_280_280_R5.jpg) no-repeat center;
  243. background-size: 238px auto;
  244. }
  245. .tejia-ft a {
  246. color: #f06500;
  247. margin: 5px;
  248. font-weight: 700;
  249. }
  250. .tejia-ft a:nth-child(2) {
  251. margin: -9px;
  252. }
  253. /* 携程精选榜 */
  254. .sales-rank {
  255. flex: 50%;
  256. height: 148px;
  257. background-color: #fff;
  258. border-radius: 8px;
  259. margin: -7px 3px;
  260. }
  261. .rank-hd {
  262. position: relative;
  263. }
  264. .rank-hd-zuo {
  265. display: block;
  266. width: 73px;
  267. height: 20px;
  268. background: url(../upload/0zc6g120008g0hcb587E5.png) no-repeat;
  269. background-size: 73px auto;
  270. margin: 8px;
  271. }
  272. .rank-hd-you {
  273. position: absolute;
  274. top: 1px;
  275. right: 9px;
  276. display: inline-block;
  277. width: 61px;
  278. height: 18px;
  279. color: #ae6e15;
  280. font-size: 12px;
  281. background-color: #fdefd2;
  282. padding: 1px 4px;
  283. border-radius: 2px;
  284. }
  285. .rank-bd {
  286. display: flex;
  287. }
  288. .rank-bd-zuo {
  289. position: relative;
  290. overflow: hidden;
  291. flex: 50%;
  292. }
  293. .rank-bd .tu {
  294. display: inline-block;
  295. width: 117px;
  296. height: 84px;
  297. border-radius: 8px;
  298. }
  299. .rank-bd-zuo .tu {
  300. background: url(../upload/zuo.jpg) no-repeat center;
  301. background-size: 117px auto;
  302. margin: 0 6px;
  303. }
  304. .rank-bd-you {
  305. overflow: hidden;
  306. position: relative;
  307. }
  308. .rank-bd-you .tu {
  309. background: url(../upload/you.webp) center;
  310. background-size: 117px auto;
  311. }
  312. .rank-bd .tubiao {
  313. position: absolute;
  314. top: 0;
  315. left: 0;
  316. display: inline-block;
  317. width: 30px;
  318. height: 16px;
  319. color: #663c00;
  320. font-size: 12px;
  321. background-color: #dab996;
  322. border-radius: 8px 0 8px 0;
  323. }
  324. .rank-bd .rank-bd-zuo .tubiao {
  325. left: 6px;
  326. }
  327. .text {
  328. display: block;
  329. font-size: 12px;
  330. }
  331. /* 底部图片 */
  332. .bottom-img a {
  333. display: block;
  334. height: 129px;
  335. width: 518px;
  336. background: url(../upload/bottom.jpg)no-repeat;
  337. background-size: 518px auto;
  338. margin: 20px 18px;
  339. border-radius: 8px;
  340. }
  341. /* 底部工具模块 */
  342. .tool-group .link,
  343. .download {
  344. box-sizing: border-box;
  345. display: inline-block;
  346. width: 104px;
  347. height: 34px;
  348. border: 1px solid #ccc;
  349. text-align: center;
  350. line-height: 32px;
  351. border-radius: 4px;
  352. color: #000;
  353. }
  354. .link {
  355. margin: 7px 153px 14px 100px;
  356. }
  357. .tool-text a {
  358. display: inline-block;
  359. color: #666;
  360. /* padding: 10px; */
  361. width: 96px;
  362. height: 15px;
  363. }
  364. .tool-text a:nth-child(2) {
  365. margin-left: 12px;
  366. }
  367. .tool-text .zuo {
  368. position: relative;
  369. margin-top: 9px;
  370. margin-left: 200px;
  371. }
  372. .tool-text .zuo::after {
  373. position: absolute;
  374. top: 2px;
  375. left: 85px;
  376. content: "";
  377. background-color: #e0e0e0;
  378. width: 1px;
  379. height: 18px;
  380. }
  381. .tool-text p {
  382. color: #666;
  383. margin-left: 171px;
  384. font-size: 13px;
  385. }
  386. /* 底部导航栏 */
  387. .bottom-nav {
  388. display: flex;
  389. height: 49px;
  390. background-color: #fff;
  391. }
  392. .bottom-nav li {
  393. flex: 1;
  394. }
  395. .bottom-nav a {
  396. display: flex;
  397. /* 将主轴设置成y轴 */
  398. flex-direction: column;
  399. /* 侧轴居中对齐 单行的· */
  400. align-items: center;
  401. font-size: 12px;
  402. color: #666;
  403. }
  404. /* 利用属性选择器 */
  405. .bottom-nav li [class^="local-nav-icon"] {
  406. width: 32px;
  407. height: 32px;
  408. background: url(../images/tabbar.png) no-repeat 0 0;
  409. background-size: 32px auto;
  410. }
  411. .bottom-nav li .local-nav-icon-icon2 {
  412. background-position: 0 -32px;
  413. }
  414. .bottom-nav li .local-nav-icon-icon3 {
  415. background-position: 0 -64px;
  416. }
  417. .bottom-nav li .local-nav-icon-icon4 {
  418. background-position: 0 -96px;
  419. }
  420. .bottom-nav li .local-nav-icon-icon5 {
  421. background-position: 0 -128px;
  422. }

4. 完成效果

5. 总结

  1. 内容参考来自b站的up主:黑马前端 pink老师前端入门教程。自己动手做的时候感觉自己学的太差了呜呜呜,什么都没掌握好,最后的完成效果也一般,完成时间也比预期中耗费的更多,只能说继续努力吧。
标签: css3 html5 前端

本文转载自: https://blog.csdn.net/qq_53767416/article/details/126808498
版权归原作者 俗世没有清欢 所有, 如有侵权,请联系我们删除。

“携程网移动端首页制作(html5+css3)”的评论:

还没有评论