移動端web頁面適配

移動端Web頁面,即常說的H5頁面逗威、手機頁面峰搪、webview頁面等。

手機設(shè)備屏幕尺寸不一凯旭,在做移動端的Web頁面時概耻,需要考慮在安卓/IOS的各種尺寸設(shè)備上的兼容。

適配的目標就是做到在不同尺寸的手機設(shè)備上罐呼,頁面“相對性的達到合理的展示”或者“保持統(tǒng)一效果的等比縮放“

介紹:

長度單位:px em rem

  • px 在縮放頁面時無法調(diào)整那些使用它作為單位的字體鞠柄、按鈕等的大小嫉柴;
  • em 的值并不是固定的厌杜,會繼承父級元素的字體大小,代表倍數(shù)计螺;
  • rem 的值并不是固定的夯尽,始終是基于根元素 <html> 的,也代表倍數(shù)登馒。

鑒于上述長度單位的特性匙握,為了滿足適配的要求,rem是最優(yōu)的選擇谊娇。

rem適配實現(xiàn)方式:

首先是如何將px轉(zhuǎn)化成rem肺孤,舉個例子來說罗晕,有一個image參數(shù)代碼如下

.img{
    width:320px;
    height:160px;
}

那么如果你頁面

html{
    font-size:16px;
}

轉(zhuǎn)化成rem為單位的話就是

.img{
    width:20rem;
    height:10rem;
}

可以很明顯的得出一個公式: rem=px/font-size

當然上述只是舉一個例子來講述px和rem之間的轉(zhuǎn)換關(guān)系。

下面是用sass的函數(shù)來計算px轉(zhuǎn)rem赠堵,避免了一直手動計算

/* 
 * 此處 $base-font-size 具體數(shù)值根據(jù)設(shè)計圖尺寸而定
 * eg:若設(shè)計圖為iPhone6(375*667)的二倍稿小渊,則$base-font-size=32px
 */ 
@function px2rem($px, $base-font-size: 32px) {
  @if (unitless($px)) {
    @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels for you";
    @return px2rem($px + 0px); // That may fail.
  } @else if (unit($px) == rem) {
    @return $px;
  }
  @return ($px / $base-font-size) * 1rem;
}

// 使用,eg:
font-size: px2rem(18px);

當然要做到頁面自適應(yīng)茫叭,我們還需要動態(tài)的去改變html的font-size酬屉。這里就要用到j(luò)s去獲取頁面的寬度來設(shè)置font-size,代碼如下:

<script>
    $(window).load(function(doc, win) {
    var docEle = doc.documentElement,
        evt = "onorientationchange" in window ? "orientationchange" : "resize", //旋轉(zhuǎn)屏幕揍愁、大小變化
        fn = function() {
            var width = document.documentElement.clientWidth; //獲取可見寬度
            var height= document.documentElement.clientHeight;//獲取可見高度
            width && (docEle.style.fontSize = width / 23.437+ "px");//設(shè)置font-size
        };
    win.addEventListener(evt, fn, false); //添加事件
    win.addEventListener('resize', fn, false);
    doc.addEventListener("DOMContentLoaded", fn, false);
}(document, window))
</script>

這個js主要的地方就是設(shè)置font-size時width所除之數(shù)棕洋。它的算法是屏幕分辨率/font-size

這里我依然用16和750的分辨率來舉例最域。那么此js里的算式的除數(shù)就是 750/16=46.875脉漏。相應(yīng)的在css中的px轉(zhuǎn)rem就是我上面舉的例子房官。

當然在具體環(huán)境的應(yīng)用中,我不推薦用16px朽缎,原因是當屏幕分辨率較小時惨远,font-size算出來的值會小于12,而在webkit的瀏覽器中設(shè)置有最小的font-size為12px话肖,即當font-size小于12時仍以font-size:12px來顯示北秽,這就會導(dǎo)致顯示出現(xiàn)問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末最筒,一起剝皮案震驚了整個濱河市贺氓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌床蜘,老刑警劉巖辙培,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異悄泥,居然都是意外死亡虏冻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門弹囚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人领曼,你說我怎么就攤上這事鸥鹉。” “怎么了庶骄?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵毁渗,是天一觀的道長。 經(jīng)常有香客問我单刁,道長灸异,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮肺樟,結(jié)果婚禮上檐春,老公的妹妹穿的比我還像新娘。我一直安慰自己么伯,他們只是感情好疟暖,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著田柔,像睡著了一般俐巴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硬爆,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天欣舵,我揣著相機與錄音,去河邊找鬼缀磕。 笑死缘圈,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的虐骑。 我是一名探鬼主播准验,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼廷没!你這毒婦竟也來了糊饱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤颠黎,失蹤者是張志新(化名)和其女友劉穎另锋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狭归,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡夭坪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了过椎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片室梅。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疚宇,靈堂內(nèi)的尸體忽然破棺而出亡鼠,到底是詐尸還是另有隱情,我是刑警寧澤敷待,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布间涵,位于F島的核電站,受9級特大地震影響榜揖,放射性物質(zhì)發(fā)生泄漏勾哩。R本人自食惡果不足惜抗蠢,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望思劳。 院中可真熱鬧迅矛,春花似錦、人聲如沸敢艰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钠导。三九已至震嫉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牡属,已是汗流浹背票堵。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逮栅,地道東北人悴势。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像措伐,于是被迫代替她去往敵國和親特纤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

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

  • title: 移動端Web頁面適配淺析date: 2018-01-31 16:38:01tags: 移動端 適配 ...
    豆板兒閱讀 12,279評論 0 16
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案侥加? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,753評論 1 92
  • 剛開始做移動端web開發(fā)的同學應(yīng)該都碰到過頁面適配問題捧存,為什么我在開發(fā)手機上調(diào)試好的頁面在其他手機會有這樣或那樣的...
    留七七閱讀 19,364評論 5 80
  • 作為一個前端開發(fā)人員,我們的任務(wù)是將UI設(shè)計師的圖稿運用計算機語言呈現(xiàn)在用戶面前担败。而現(xiàn)在的設(shè)備大小尺寸不一昔穴,近年來...
    小紅依閱讀 322評論 0 1
  • 昨天看電視《兩生花》,電影《咱們結(jié)婚吧》提前,突然想起曾經(jīng)說好要一起去看日出吗货,然后就沒有然后了。關(guān)于過去的記憶狈网,總...
    duoduo_four閱讀 254評論 0 1