解決前端rem在某些機(jī)器上適配不正確的方法

我們?nèi)绻褂昧颂詫毜膄lexible.js來寫h5的頁(yè)面布局获诈,會(huì)經(jīng)常遇到一個(gè)很頭疼的問題局义,就是在某些手機(jī)上出現(xiàn)適配不正確惊来,比如我明明設(shè)置了root的font-size大小為36px,可是最后10rem居然是按照39px算的蝗罗!這個(gè)問題該怎么解決呢夹纫,其實(shí)思路還是蠻簡(jiǎn)單的栖忠,就是進(jìn)行預(yù)先檢測(cè)崔挖,比如先給body附上width = 10rem贸街,然后再獲取這個(gè)時(shí)候body的寬度的值,單位為px狸相,再拿它于之前獲得的設(shè)備的寬度進(jìn)行比較薛匪,如果相等說明該設(shè)備正常解析,如果不相等脓鹃,那就進(jìn)行等比例適配放小逸尖,重新設(shè)置一下html的字體大小即可。


/**

*

* @authors zhouzexin@baidu.com

* @date 2016-08-20 18:00:04

* @version 1.0.0.1

*/

;(function (win) {

var doc = win.document;

var docEl = doc.documentElement;

var tid;

// 獲取樣式值

function getStyle(dom, attr) {

if (window.getComputedStyle) {

return window.getComputedStyle(dom, null)[attr];

} else {

return dom.currentStyle[attr];

}

}

// 處理不規(guī)則的rem計(jì)算

function fixFontSize(width, rem, html) {

var body = doc.getElementsByTagName('body')[0];

body.style.width = '10rem';

var scale = 1;

var bodyWidth = parseInt(getStyle(body, 'width'));

if (bodyWidth != width) {

scale = width / bodyWidth;

rem = rem * scale;

docEl.style.fontSize = rem + 'px';

}

body.style.width = '100%';

}

//計(jì)算root元素的字體大小

function refreshRem() {

var html = document.getElementsByTagName('html')[0];

var width = parseInt(getStyle(html, 'width'));

if (width > 768) { // 最大寬度

width = 768;

}

var rem = width / 10; // 將屏幕寬度分成10份瘸右, 1份為1rem

docEl.style.fontSize = rem + 'px';

fixFontSize(width, rem);

}

win.addEventListener('resize', function () {

clearTimeout(tid);

tid = setTimeout(refreshRem, 300);

}, false);

win.addEventListener('pageshow', function (e) {

if (e.persisted) {

clearTimeout(tid);

tid = setTimeout(refreshRem, 300);

}

}, false);

refreshRem();

})(window);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娇跟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子太颤,更是在濱河造成了極大的恐慌苞俘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栋齿,死亡現(xiàn)場(chǎng)離奇詭異苗胀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瓦堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門基协,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人菇用,你說我怎么就攤上這事澜驮。” “怎么了惋鸥?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵杂穷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我卦绣,道長(zhǎng)耐量,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任滤港,我火速辦了婚禮廊蜒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溅漾。我一直安慰自己山叮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布添履。 她就那樣靜靜地躺著屁倔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暮胧。 梳的紋絲不亂的頭發(fā)上锐借,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天问麸,我揣著相機(jī)與錄音,去河邊找鬼瞎饲。 笑死口叙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅战。 我是一名探鬼主播妄田,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼驮捍!你這毒婦竟也來了疟呐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤东且,失蹤者是張志新(化名)和其女友劉穎启具,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珊泳,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鲁冯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了色查。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薯演。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖秧了,靈堂內(nèi)的尸體忽然破棺而出跨扮,到底是詐尸還是另有隱情,我是刑警寧澤验毡,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布衡创,位于F島的核電站,受9級(jí)特大地震影響晶通,放射性物質(zhì)發(fā)生泄漏璃氢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一狮辽、第九天 我趴在偏房一處隱蔽的房頂上張望一也。 院中可真熱鬧,春花似錦隘竭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至爪幻,卻和暖如春菱皆,著一層夾襖步出監(jiān)牢的瞬間须误,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工仇轻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留京痢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓篷店,卻偏偏與公主長(zhǎng)得像祭椰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疲陕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 剛開始做移動(dòng)端web開發(fā)的同學(xué)應(yīng)該都碰到過頁(yè)面適配問題方淤,為什么我在開發(fā)手機(jī)上調(diào)試好的頁(yè)面在其他手機(jī)會(huì)有這樣或那樣的...
    留七七閱讀 19,322評(píng)論 5 80
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評(píng)論 1 92
  • 移動(dòng)設(shè)備瀏覽器的問題中心在于CSS蹄殃,特別是viewport的尺寸携茂。在移動(dòng)設(shè)備上進(jìn)行網(wǎng)頁(yè)的開發(fā),首先得搞明白的就是移...
    勿以浮沙筑高臺(tái)閱讀 1,739評(píng)論 0 2
  • 前言 對(duì)于熟悉pc端的小伙伴來說,對(duì)于靜態(tài)頁(yè)面的布局,一般都是沒有什么問題的,為了保持各瀏覽器顯示的一致性,無(wú)論是...
    itclanCoder閱讀 13,642評(píng)論 5 61
  • 你的身邊有沒有那么一些不熟的朋友鸳谜,向你提出一些很熟的請(qǐng)求? 要期末了逮京。 小甲:這學(xué)期我都沒怎么去上課卿堂,你能把你這學(xué)...
    江城LL閱讀 218評(píng)論 2 1