關於手機端適配的問題(rem,頁面縮放)
96 進擊的小前端 關注
2018.02.02 13:57 字數 320 閱讀 19評論 0喜歡 0
相信不少和會和我碰到同樣的狀況,就是你用rem去寫移動端的時候,若是想引用別的UI庫的時候,本身頁面寫的是rem單位,而ui庫的css裏面寫的是px,你們都知道,rem是在html上設置font-size 字體大小。而後,,而後ui庫的裏面的px 會和 rem衝突,很麻煩,搜了不少辦法都沒找到好的解決辦法!!!
rem的作法css
(function() {
var doc = document,
win = window;
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function() {
var clientWidth = docEl.clientWidth;
if(!clientWidth) return;
//若是屏幕大於750(750是根據我效果圖設置的,具體數值參考效果圖),就設置clientWidth=750,防止font-size會超過100px
if(clientWidth > 750) { clientWidth = 750 }
//設置根元素font-size大小
docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
};
//屏幕大小改變,或者橫豎屏切換時,觸發函數
win.addEventListener(resizeEvt, recalc, false);
//文檔加載完成時,觸發函數
doc.addEventListener('DOMContentLoaded', recalc, false);
})();
本人在看帖子的時候,看到一個淘寶縮放頁面的方法,親測,效果不錯,直接用px單位寫,根據meta標籤進行縮放。這樣若是想引用ui庫的css 就不會衝突了,嗯不錯不錯。html
附上縮放代碼前端
可是。。。可是。若是作app套瀏覽器殼的話,是不容許你使用meta標籤縮放的。
網易的作法是用css進行縮放。具體作法以下:
htmlandroid
cssios
/* css reset from normalize*/web
html { /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } body { margin: 0; } /* 上下拉動滾動條時卡頓、慢 */ body { -webkit-overflow-scrolling: touch; overflow-scrolling: touch; } /* ios和android下觸摸元素時出現半透明灰色遮罩 */ a { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); } #getHeight { height: 100vh; width: 100vw; position: absolute; top: 0; left: 0; z-index: -10; } #content { width: 750px; transform-origin: 0 0; font-size: 36px; } #content { height: 100%; }
js瀏覽器
這樣方法的好處就是用css進行縮放,在作app的時候也是沒有問題的,缺點,就是代碼比較多。
不喜勿噴。謝謝!!!app