技术选型
- 方案∶采取单独制作移动页面方案
- 技术:布局采取rem适配布局( less + rem +媒体查询)设计图:
- 设计图采用750px设计尺寸
设置视口标签以及引入初始化样式
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0"><title>苏宁易购</title><link rel="stylesheet" href="./css/normalize.css">
设置公共common.less文件
- 新建common.less设置好最常见的屏幕尺寸,利用媒体查询设置不同的htm字体大小,因为除了首页其他页面也需要
- 我们关心的尺寸有320px、360px、375px、384px、400px、414px、424px、480px、540px、720px、750px
- 划分的份数定为15等份
- 因为pc端也可以打开我们苏宁移动端首页,我们默认html字体大小为50px,注意这句话写到最上面
新建index.less文件
1.新建index.less这里面写首页的样式
2.将刚才设置好的common.less 引入到index.less里面语法如下:
//在index.less 中导入common.less 文件
@import "common”
搜索区域
因为是rem布局,所以设置宽度高度或者跟数字有关的数据时,都要除以html的文字大小
构造就是使用flex布局,左右定宽,中间flex为1.
<!-- 顶部搜索框 --><div class="search-content"><a href="" class="classify"></a><div class="search"><form action=""><input type="search" value="厨卫保暖器"></form></div><a href="" class="login">登录</a></div>
body {min-width: 320px;width: 15rem;margin: 0 auto;line-height: 1.5;background: #f2f2f2;
}
@basefont:50;
.search-content {display: flex;position: fixed;top: 0;left: 50%;transform: translateX(-50%);width: 15rem;height: (88rem / @basefont);background-color: #ffc001;.classify {width: (44rem / @basefont);height: (70rem / @basefont);margin: (11rem / @basefont) (25rem / @basefont) (7rem / @basefont) (24rem / @basefont) ;background: url(../images/classify.png) no-repeat;background-size: (44rem / @basefont) (70rem / @basefont);}.search {flex: 1;line-height: (75rem / @basefont);input {outline: none;border: 0;width: 100%;height: (66rem / @basefont);border-radius: (33rem / @basefont);background-color: #fff2cc;font-size: (25rem / @basefont);padding-left: (55rem / @basefont);color: #757575;}}.login {width: (75rem / @basefont);height: (70rem / @basefont);margin: (10rem / @basefont);text-align: center;line-height: (70rem / @basefont);font-size: (25rem /@basefont);color: #fff;}
}
banner区域
banner区域放置一张图片,为了使图片也能自适应,应该设定banner的宽度和高度,图片在里面百分百就可以
<div class="banner"><img src="./upload/banner.gif" alt=""></div>
// banner
.banner {width: (750rem / @basefont);height: (368rem / @basefont);img {width: 100%;height: 100%;}
}
广告区域
该区域分为三个部分,可使用flex布局使三张链接图片平分为三部分,让a里面的图片宽度百分百即可
<div class="ad"><a href=""><img src="./upload/ad1.gif" alt=""></a><a href=""><img src="./upload/ad2.gif" alt=""></a><a href=""><img src="./upload/ad3.gif" alt=""></a></div>
// ad
.ad {display: flex;a {flex: 1;img {width: 100%;}}
}
nav
这次的nav先不用flex布局,用rem布局,每个a元素的宽高固定,再对a元素进行浮动即可
<div class="nav"><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a><a href=""><img src="./upload/nav1.png" alt=""><span>爆款手机</span></a></div>
.nav {width: (750rem / @basefont);a {margin-top: (10rem / @basefont);float: left;width: (150rem / @basefont);height: (140rem / @basefont);text-align: center;img {display: block;width: (82rem / @basefont);height: (82rem / @basefont);margin: (10rem / @basefont) auto 0;}span {font-size: (25rem / @basefont);color: #333;}}
}
剩下的样式都是常规操作,我就不详细说了,以上代码主要是熟悉rem布局的做法。