移动端布局核心
1.水平方向不能出现滚动条(禁止缩放,元素宽度超过视口的宽度)
2.需要适配宽度,高度使用固定值(高度允许出现滚动条)
百分比布局(流式布局):宽度使用百分比,高度使用px
3.移动端盒子模型使用内减模型: box-sizing: border-box;
避免由于border和padding导致的水平滚动条的问题
拓展:
手机端的a标签会有背景颜色
解决方法:给a标签添加如下代码
-webkit-tap-highlight-color: transparent;
京东首页-练习案例
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<!-- 移动端视口适配 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>京东首页</title>
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/index.css">
</head>
<body>
<!-- 版心容器 -->
<div class="container">
<!-- 1-搜索栏 -->
<div class="top-bar">
<a href="" class="menu"></a>
<input type="text" placeholder="商品名称">
<a href="" class="login">登录</a>
</div>
<!-- 2-banner栏 -->
<div class="banner">
<img src="images/slide.png" alt="">
</div>
<!-- 3.导航栏 -->
<div class="nav-bar">
<ul class="clearfix">
<li><a href=""><img src="images/nav01.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav02.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav03.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav04.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav05.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav06.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav07.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav08.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav09.png" alt=""><span>京东超市</span></a></li>
<li><a href=""><img src="images/nav10.png" alt=""><span>京东超市</span></a></li>
</ul>
</div>
<!-- 4.京东快报 -->
<div class="jd-news">
<span><span>热门 </span>价格太贵买不起</span>
<a href="">更多</a>
</div>
<!-- 5.活动列表 -->
<div class="adv-list clearfix">
<a href=""><img src="images/adv01.jpg" alt=""></a>
<a href=""><img src="images/adv02.jpg" alt=""></a>
<a href=""><img src="images/adv03.jpg" alt=""></a>
</div>
<!-- 6.商品列表 -->
<div class="good-list">
<div class="good-title"><img src="images/goods_title.jpg" alt=""></div>
<div class="good-list01 clearfix">
<a href="" class="clearfix">
<span>二手寻宝</span>
<span>跳蚤市场逛一逛</span>
<img src="images/goods.jpg" alt="">
<img src="images/goods.jpg" alt="">
</a>
<a href="" class="clearfix">
<span>二手寻宝</span>
<span>跳蚤市场逛一逛</span>
<img src="images/goods.jpg" alt="">
<img src="images/goods.jpg" alt="">
</a>
</div>
<div class="good-list02 clearfix">
<a href="">
<span>爱是一道光</span>
<span>绿到你发慌</span>
<img src="images/goods.jpg" alt="">
</a>
<a href="">
<span>爱是一道光</span>
<span>绿到你发慌</span>
<img src="images/goods.jpg" alt="">
</a>
<a href="">
<span>爱是一道光</span>
<span>绿到你发慌</span>
<img src="images/goods.jpg" alt="">
</a>
<a href="">
<span>爱是一道光</span>
<span>绿到你发慌</span>
<img src="images/goods.jpg" alt="">
</a>
</div>
</div>
<!-- 7.底部栏 -->
<div class="bottom-bar clearfix">
<a href=""><img src="images/icon_index.png" alt=""></a>
<a href=""><img src="images/icon_category.png" alt=""></a>
<a href=""><img src="images/icon_center.png" alt=""></a>
<a href=""><img src="images/icon_shopping.png" alt=""></a>
<a href=""><img src="images/icon_mime.png" alt=""></a>
</div>
</div>
</body>
</html>
c’ss
/* 版心 */
.container{
width: 100%;
/* 限制pc端版心范围 */
min-width: 320px;
max-width: 750px;
margin: 0 auto;
}
/* 1-搜索栏 */
.top-bar{
/* 固定定位相对于页面,想要居中显示也要限制版心范围 */
min-width: 320px;
max-width: 750px;
position: fixed;
top:0;
width: 100%;
height: 44px;
background-color: #E72E27;
padding: 0px 50px;
}
.top-bar .menu{
position: absolute;
left: 14px;
top:14px;
width: 20px;
height: 18px;
background: url(../images/jd_icons.png) no-repeat;
background-size: 250px 200px;
}
.top-bar input{
width: 100%;
height: 30px;
margin-top: 7px;
padding-left: 10px;
border-radius: 15px;
}
.top-bar .login{
position: absolute;
top: 0px;
right: 0px;
margin: 12px 12px auto;
color: #fff;
}
/* 2-banner栏 */
.banner{
width: 100%;
/* 注意点:固定定位fixed会脱标
解决方案:设置元素margin撑开脱标的高度
*/
margin-top: 44px;
}
.banner img{
width: 100%;
}
/* 3.导航栏 */
.nav-bar{
width: 100%;
height: 175px;
}
.nav-bar ul{
width: 100%;
}
.nav-bar ul>li{
float: left;
width: 20%;
text-align: center;
}
.nav-bar ul>li img{
display: block;
width: 40px;
height: 40px;
margin: 10px auto 5px;
}
/* 4.京东快报 */
.jd-news{
width: 100%;
height: 16px;
background: url(../images/jd_icons.png) no-repeat 8px -22px;
background-size: 250px 200px;
text-align: center;
}
.jd-news>span>span{
color: red;
}
.jd-news a{
float: right;
padding: 0px 5px;
border-left: 1px solid #E0E0E0;
}
/* 5.活动列表 */
.adv-list{
width: 100%;
margin: 10px 0px;
}
.adv-list a{
display: block;
float: left;
width: 50%;
padding: 0px 5px;
}
.adv-list a:nth-child(n+2){
width: 25%;
border-left: 1px solid #e0e0e0;
}
.adv-list a img{
width: 100%;
}
/* 6.商品列表 */
.good-list{
width: 100%;
/* 解决底部栏固定定位脱标问题 */
margin-bottom: 44px;
}
/* 商品头部 */
.good-list .good-title{
width: 100%;
height: 35px;
background-color: #F5F5F5;
}
.good-list .good-title img{
display: block;
height: 100%;
margin: 0 auto;
}
/* 商品列表01 */
.good-list .good-list01{
width: 100%;
}
.good-list .good-list01 a{
display: block;
float: left;
width: 50%;
text-align: center;
}
.good-list .good-list01 a:nth-child(2){
border-left: 1px solid #e0e0e0;
}
.good-list .good-list01 a span{
display: block;
}
.good-list .good-list01 a span:nth-child(1){
font-size: 16px;
}
.good-list .good-list01 a span:nth-child(2){
color: #779CFF;
}
.good-list .good-list01 a img{
float: left;
width: 50%;
padding: 5px;
}
/* 商品列表02 */
.good-list .good-list02{
width: 100%;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
}
.good-list .good-list02 a{
display: block;
float: left;
width: 25%;
text-align: left;
padding: 5px;
}
.good-list .good-list02 a:nth-child(n+2){
border-left: 1px solid #e0e0e0;
}
.good-list .good-list02 a span{
display: block;
}
.good-list .good-list02 a span:nth-child(1){
font-size: 16px;
}
.good-list .good-list02 a span:nth-child(2){
color: green;
}
.good-list .good-list02 a img{
width: 100%;
}
/* 7.底部栏 */
.bottom-bar{
position: fixed;
bottom: 0px;
width: 100%;
height: 44px;
background-color: #fff;
}
.bottom-bar a{
float: left;
width: 20%;
}
.bottom-bar a img{
width: 44px;
height: 44px;
display: block;
margin: 0 auto;
}