仿写pink老师携程网
1.技术选型
单独制作移动端携程网
熟练使用flex布局
2.相关文件夹搭建、
3.各部分模块
(1)顶部搜索模块(search-index)
(2)焦点图模块(focus)
(3)局部导航栏(local-nav)
(4)主导航栏(nav)
(5)侧导航栏(subnav-entry)
(6)销售模块(sales-box)
4.技术应用
(1)流利使用flex布局并且认识其中重要标签
(2)移动端宽度的注意
5.代码部分
(1)html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css"> <title>携程在手,说走就走</title> </head> <body> <!-- 顶部搜索 --> <div class="search-index"> <div class="search"> 搜索:目的地/酒店/景点/航班号 </div> <a href="#" class="user">我 的</a> </div> <!-- 焦点图模块 --> <div class="focus"> <img src="upload/focus.jpg" alt=""> </div> <!-- 局部导航栏 --> <ul class="local-nav"> <li> <a href="#" title="景点·玩乐"> <span class="local-nav-icon-icon1"></span> <span>景点·玩乐</span> </a> </li> <li> <a href="#" title="周边游"> <span class="local-nav-icon-icon2"></span> <span>周边游</span> </a> </li> <li> <a href="#" title="美食林"> <span class="local-nav-icon-icon3"></span> <span>美食林</span> </a> </li> <li> <a href="#" title="一日游"> <span class="local-nav-icon-icon4"></span> <span>一日游</span> </a> </li> <li> <a href="#" title="当地攻略"> <span class="local-nav-icon-icon5"></span> <span>当地攻略</span> </a> </li> </ul> <!-- 主导航栏 --> <nav> <div class="nav-common"> <div class="nav-items"> <a href="#">酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> </div> <div class="nav-common"> <div class="nav-items"> <a href="#">酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> </div> <div class="nav-common"> <div class="nav-items"> <a href="#">酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> <div class="nav-items"> <a href="#">海外酒店</a> <a href="#">特价酒店</a> </div> </div> </nav> <!-- 侧导航栏 --> <ul class="subnav-entry"> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> <li> <a href="#"> <span class="subnav-entry-icon"></span> <span>电话费</span> </a> </li> </ul> <!-- 销售模块 --> <div class="sales-box"> <div class="sales-hd"> <h2>热门活动</h2> <a href="#" class="more">获取更多福利</a> </div> <div class="sales-bd"> <div class="row"> <a href="#"> <img src="upload/pic1.jpg" alt=""> </a> <a href="#"> <img src="upload/pic2.jpg" alt=""> </a> </div> <div class="row"> <a href="#"> <img src="upload/pic3.jpg" alt=""> </a> <a href="#"> <img src="upload/pic4.jpg" alt=""> </a> </div> <div class="row"> <a href="#"> <img src="upload/pic5.jpg" alt=""> </a> <a href="#"> <img src="upload/pic6.jpg" alt=""> </a> </div> </div> </div> </body> </html>
复制
(2)css部分
body{ max-width: 540px; min-width: 320px; margin: 0 auto; font: normal 14px/1.5 Tahoma,"Lucida Grande",Verdana,"MicrosoftYahei",STXihei,hei; color: #000; background: #f2f2f2; overflow-x: hidden; -webkit-tap-highlight-color: transparent; } ul{ list-style: none; margin: 0; padding: 0; } a{ text-decoration: none; color: #222; } div{ box-sizing: border-box; } /* 搜索模块 */ .search-index{ display: flex; /* 固定定位跟父级没有关系,它以屏幕为准 */ position: fixed; top: 0; left: 50%; /* 固定的盒子应该有宽度 */ /* 兼容老版本 */ -webkit-transform: translateX(-50%); /* 新版本 */ transform: translateX(-50%); width: 100%; min-width: 320px; max-width: 540px; height: 44px; background-color: #F6F6F6; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; } .search{ position: relative; flex: 1; border: 1px solid #ccc; height: 26px; line-height: 24px; font-size: 12px; color: #666; padding-left: 25px; margin: 7px 10px; border-radius: 5px; box-shadow: 0 2px 4px rgba(0, 0, 0, .2); } .search::before{ content: ""; position: absolute; top: 5px; left: 5px; width: 15px; height: 15px; background: url(../images/sprite.png) no-repeat -59px -279px; background-size: 104px auto; } .user{ height: 44px; width: 44px; font-size: 12px; text-align: center; color: #2eaae0; } .user::before{ content: ""; display: block; width: 23px; height: 23px; background: url(../images/sprite.png) no-repeat -59px -194px; background-size: 104px auto; margin: 4px auto -2px; } /* focus */ .focus{ padding-top: 44px; } .focus img{ width: 100%; } /* 局部导航栏 */ .local-nav{ display: flex; height: 64px; background-color: #fff; border-radius: 8px; margin: 3px 4px; } .local-nav li{ flex: 1; } .local-nav a{ display: flex; flex-direction: column; align-items: center; font-size: 12px; } .local-nav li [class^="local-nav-icon"]{ width: 32px; height: 32px; margin-top: 8px; background: url(../images/localnav_bg.png) no-repeat 0 0; background-size: 32px auto; } .local-nav li .local-nav-icon-icon2{ background-position: 0 -32px; } .local-nav li .local-nav-icon-icon3{ background-position: 0 -64px; } .local-nav li .local-nav-icon-icon4{ background-position: 0 -96px; } .local-nav li .local-nav-icon-icon5{ background-position: 0 -128px; } /* nav */ nav{ overflow: hidden; border-radius: 8px; margin: 0 4px 3px; } .nav-common{ display: flex; height: 88px; background-color: pink; } .nav-common:nth-child(2){ margin: 3px 0; } .nav-items{ flex: 1; display: flex; flex-direction: column; } .nav-items a{ flex:1; text-align: center; line-height: 44px; color: #fff; font-size: 14px; text-shadow: 1px 1px rgba(0, 0, 0, .2); } .nav-items a:nth-child(1){ border-bottom: 1px solid #fff; } .nav-items:nth-child(1) a{ border: 0; background: url(../images/hotel.png) no-repeat bottom center; background-size: 121px auto; } .nav-items:nth-child(-n+2){ border-right: 1px solid #fff; } .nav-common:nth-child(1){ background: -webkit-linear-gradient(left,#FA5A55,#FA994D); } .nav-common:nth-child(2){ background: -webkit-linear-gradient(left,#4B90ED,#53BCED); } .nav-common:nth-child(3){ background: -webkit-linear-gradient(left,#34C2A9,#6CD559); } /* subnav-entry */ .subnav-entry{ display: flex; border-radius: 8px; background-color: #fff; margin: 0 4px; flex-wrap: wrap; padding: 5px 0; box-shadow: 1px 1px rgba(0, 0, 0, .2); } .subnav-entry a{ display: flex; flex-direction: column; align-items: center; } .subnav-entry-icon{ width: 28px; height: 28px; margin-top: 4px; background: url(../images/subnav-bg.png) no-repeat; background-size: 28px auto; } .subnav-entry li{ /* 里面的子盒子可以写 % 相对于父级来说的 */ flex: 20%; } /* 销售模块 */ .sales-box{ border-top: 1px solid #bbb; background-color: #fff; margin: 4px; } .sales-hd{ position: relative; height: 44px; border-bottom: 1px solid #ccc; } .sales-hd h2{ position: relative; text-indent: -999px; overflow: hidden; } .sales-hd h2::after{ position: absolute; top: 8px; left: 20px; content: ""; width: 79px; height: 15px; background: url(../images/hot.png) no-repeat 0 -20px; background-size: 79px auto; } .more{ position: absolute; right: 5px; top: 0px; background: -webkit-linear-gradient(left,#FF506C,#FF6BC6); border-radius: 15px; padding: 3px 20px 3px 10px; color: #fff; } .more::after{ content: ""; position: absolute; top: 9px; right: 9px; width: 7px; height: 7px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg); } .row{ display: flex; } .row a{ flex: 1; border-bottom: 1px solid #eee; } .row a:nth-child(1){ border-right: 1px solid #eee; } .row a img{ width: 100%; }
复制