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。