1、使用方法:javascript
一、头部添加<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />css
二、设置根元素html的font-size做为标准,我在这里用的100pxhtml
三、引入自动判断屏幕的jsjava
四、使用的时候记得换算具体的rem浏览器
测试代码以下:安全
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <style type="text/css"> html{ font-size: 100px; } #test{ font-size: 5rem; } </style> </head> <body> <div id="test"> 请拉动屏幕查看字体是否放大 </div> <script type="text/javascript"> ;(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return; docEl.style.fontSize = 100 * (clientWidth / 375) + 'px'; }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window); </script> </body> </html>
2、常见问题测试
①为何要使用CSS逻辑像素数?字体
对于苹果6手机屏幕来讲,750px的页面宽度是一个安全的最大宽度,保证了移动端页面两边不会留白。注意这里的px是css逻辑像素,与设备的物理像素是有区别的。如iPhone 6使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 表明 1px x 1px 的 css pixel,因此设备像素数为750 x 1334px,而它的CSS逻辑像素数为375 x 667px。
若是要切移动端页面,你能够先把效果图宽度等比例缩放到375px,很好用。
spa
②为何要设置html的font-size?scala
rem就是根元素(即:html)的字体大小。html中的全部标签样式凡是涉及到尺寸的(如: height,width,padding,margin,font-size。甚至,left,top等)你均可以放心大胆的用rem做单位。
若是你把html的font-size设为100px,前面说过,rem就是html的字体大小,那么1rem = 100px。
那么一个宽60px,高40px元素样式设置以下:(须要注意设计稿上60px通过css逻辑像素数处理后是30px,即缩小2倍)
width=60px/2/100px=0.3rem
height=40px/2/100px=0.2rem
③为何不一开始把html的font-size设为1px?
浏览器通常都有最小字体限制,好比谷歌浏览器,最小中文字体就是12px,因此实际上没有办法让1rem=1px。