以前常常听到移动端这个词,但本身并无真正的编写过移动端代码,今天决定仿豆瓣的移动端页面。移动端的代码编写其实不复杂,值得注意的地方有:特殊的meta标签、百分百比布局、rem设置字体大小。css
老司机请绕行~html
1 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
强制让文档的宽度与设备的宽度保持1:1,而且文档最大的宽度比例是1.0,且不容许用户点击屏幕放大浏览;css3
name 属性的 viewport 值(移动屏幕的缩放)web
width ---------------------– // viewport 的宽度 (范围从 200 到 10,000,默认为 980 像素)
height --------------------– // viewport 的高度 (范围从 223 到 10,000 )
initial-scale --------------– // 初始的缩放比例 (范围从 > 0 到 10)
minimum-scale ---------– // 容许用户缩放到的最小比例
maximum-scale --------– // 容许用户缩放到的最大比例
user-scalable -----------– // 用户是否能够手动缩放 (no,yes)chrome
1 body { 2 min-width: 320px; 3 }
有些安卓系统自带的浏览器并不支持这一条规则,可以对页面进行放大,一旦放大响应的 box 也随之放大,致使页面出现错乱问题,解决方法:定义页面的最小宽度; 浏览器
1 <meta name="format-detection" content="telephone=no" />
使设备浏览网页时对数字不启用电话功能(不一样设备解释不一样,iTouch 点击数字为存入联系人,iPhone 为拨打电话),忽略将页面中的数字识别为电话号码。工具
1 element{ 2 width: 100%; 3 padding-left: 10px; 4 box-sizing:border-box; 5 -webkit-box-sizing:border-box; 6 border: 1px solid blue; 7 }
经常使用em对照表以下:布局
有一种简单的方式,在根节点<html>上重定义基准字号 html {font-size:62.5%} ,此时页面基准字号就是 16px * 62.5% = 10px , 那么此时 1em = 10px,那么此时14px = 1.4em,15px=1.5em这样就简单多了。字体
1 html { font-size: 100%; } 2 .box-0 { 3 height: 1em; /* 此时height等于16px */ 4 } 5 .box-1 { 6 font-size: 0.625em; /* 此时基准字号以变动为16*0.625=10px */
7 height: 1em; /* 此时实际height等于10px */
8 }
在整个页面内1em并非一个固定不变的值,1em不停的变换。有了rem就好解决了。spa
rem:rem只相对跟节点<html>计算,只有把根节点设定好参考值,那么全篇的1rem都相等,计算方式同em,默认1rem=16px; 同理你能够设定html { font-size:62.5% } 那么1rem就等于10px,以此类推。
声明一下:rem是css3属性,没错!这就是说屌丝ie678不支持rem属性,只有chrome、firefox等高富帅支持!那么咱们就在ie678中用px作兼容处理,例如:
1 .box { 2 font-size: 14px; /* 用来兼容ie678 */ 3 font-size: 0.875em; 4 }
写的很差的地方欢迎指正,谢谢啦!