移动端布局方案 网易
2017-03-24 11:55
190 查看
移动端布局:
rem方案:页面中的任何元素都采用rem布局,包括字体。
html的font-size大小是根据移动设备自动计算的。
设计师完成的设计稿宽度为:750px,此时html跟节点的大小是50px,其他元素根据这个基准值设置rem大小。
html设置基准字体大小的测试地址为:http://3g.163.com/touch/all?dataversion=B&version=v_standard
页面上html的font-size不是预先通过媒介查询在css里定义好的,而是通过js计算出来的,如上述代码中的js代码部分就是计算html的font-size的大小。
rem方案:页面中的任何元素都采用rem布局,包括字体。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <style type="text/css"> * { margin: 0; padding: 0; } body { width: 7.5rem; font-size: 32px; font-size: .32rem; max-width: 1080px; margin: 0 auto; background: #f6f6f6; font-family: 'STHeiti', 'Microsoft YaHei', Helvetica, Arial, sans-serif; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } </style> </head> <body> <script type="text/javascript"> var Dpr = 1, uAgent = window.navigator.userAgent; var isIOS = uAgent.match(/iphone/i); var isYIXIN = uAgent.match(/yixin/i); var is2345 = uAgent.match(/Mb2345/i); var ishaosou = uAgent.match(/mso_app/i); var isSogou = uAgent.match(/sogoumobilebrowser/ig); var isLiebao = uAgent.match(/liebaofast/i); var isGnbr = uAgent.match(/GNBR/i); function resizeRoot() { var wWidth = (screen.width > 0) ? (window.innerWidth >= screen.width || window.innerWidth == 0) ? screen.width : window.innerWidth : window.innerWidth, wDpr, wFsize; var wHeight = (screen.height > 0) ? (window.innerHeight >= screen.height || window.innerHeight == 0) ? screen.height : window.innerHeight : window.innerHeight; if(window.devicePixelRatio) { wDpr = window.devicePixelRatio; } else { wDpr = isIOS ? wWidth > 818 ? 3 : wWidth > 480 ? 2 : 1 : 1; } if(isIOS) { wWidth = screen.width; wHeight = screen.height; } if(wWidth > wHeight) { wWidth = wHeight; } wFsize = wWidth > 1080 ? 144 : wWidth / 7.5; wFsize = wFsize > 32 ? wFsize : 32; window.screenWidth_ = wWidth; if(isYIXIN || is2345 || ishaosou || isSogou || isLiebao || isGnbr) { //YIXIN 和 2345 这里有个刚调用系统浏览器时候的bug,需要一点延迟来获取 setTimeout(function() { wWidth = (screen.width > 0) ? (window.innerWidth >= screen.width || window.innerWidth == 0) ? screen.width : window.innerWidth : window.innerWidth; wHeight = (screen.height > 0) ? (window.innerHeight >= screen.height || window.innerHeight == 0) ? screen.height : window.innerHeight : window.innerHeight; wFsize = wWidth > 1080 ? 144 : wWidth / 7.5; wFsize = wFsize > 32 ? wFsize : 32; document.getElementsByTagName('html')[0].style.fontSize = wFsize + 'px'; document.getElementById("fixed").style.display = "none"; }, 500); } else { document.getElementsByTagName('html')[0].style.fontSize = wFsize + 'px'; document.getElementById("fixed").style.display = "none"; } } resizeRoot(); </script> </body> </html>
html的font-size大小是根据移动设备自动计算的。
设计师完成的设计稿宽度为:750px,此时html跟节点的大小是50px,其他元素根据这个基准值设置rem大小。
html设置基准字体大小的测试地址为:http://3g.163.com/touch/all?dataversion=B&version=v_standard
页面上html的font-size不是预先通过媒介查询在css里定义好的,而是通过js计算出来的,如上述代码中的js代码部分就是计算html的font-size的大小。
相关文章推荐
- 移动端布局方案 网易
- css基础02:移动端自适应布局方案
- 移动端rem布局中,当显示横屏时,解决根目录font-size切换屏幕不变情况(相较于引用rem.js方案的不足)
- 移动端自适应布局方案尝试
- Web移动端Css Fixed方式的布局方案
- pc、移动端 自适应布局方案
- 移动端布局方案
- 拉钩、网易、淘宝移动端rem布局分析(转载非原创)
- 移动端布局方案 讲解与实例
- 移动端布局屏幕适配方案
- 移动端自适应布局方案尝试
- 移动端布局方案探究
- 解决Web移动端Fixed布局的方案(防止页面露底、overflow-scrolling、iOS下的 Fixed + Input BUG现象、isScroll.js)
- 移动端高清、多屏适配方案 [来源:http://div.io/topic/1092]
- CSS-左边定宽,右边自适应布局方案
- 移动端布局笔记
- 移动端爬坑记 --- (1)布局与样式上的奇葩偶遇
- 移动端开发常见问题解决方案汇总- Javascript技巧(二)
- android屏幕适配方案二(百分比布局)
- Web移动端Fixed布局的解决方案(原文出处:http://efe.baidu.com/blog/mobile-fixed-layout)