淺談移動(dòng)端適配

手機(jī)設(shè)備屏幕尺寸不一,做移動(dòng)端的Web頁面戒幔,需要考慮在安卓/IOS的各種尺寸設(shè)備上的兼容粒梦,所謂移動(dòng)端適配,就是在不同尺寸的手機(jī)設(shè)備上同辣,頁面“相對性的達(dá)到合理的展示(自適應(yīng))”


主要從以下幾點(diǎn)入手:

1.百分比布局

目的是讓頁面能夠自適應(yīng)屏幕寬度而自動(dòng)調(diào)整大小拷姿。但是這是有缺陷的惭载,元素隨頁面大小放生改變的時(shí)候,會(huì)顯得極不協(xié)調(diào)與難看响巢。你無法基于寬度去設(shè)置一個(gè)高度描滔,所以高度不會(huì)因?yàn)槠聊粚挾鹊母淖兌M(jìn)行有比例的變化,高度和寬度無法做任何的配合踪古。

2.vm/vh

vw(view-width), vh(view-height)?這兩個(gè)單位是CSS新增的單位含长,表示視區(qū)寬度/高度,視區(qū)總寬度為100vw, 總高度為100vh伏穆。視區(qū)指瀏覽器內(nèi)部的可視區(qū)域大芯信ⅰ:window.innerWidth/Height

這兩個(gè)長度單位和百分比相似,我們可以通過這兩個(gè)長度屬性來讓頁面自適應(yīng)枕扫,但vw屬性的兼容性并不好陪腌。

3.媒體查詢

通過設(shè)置媒體查詢來更改頁面樣式,例如:

①烟瞧,@media max-width800px{css樣式}? ?--------------屏幕小于800px的時(shí)候顯示的css樣式

②诗鸭,<link rel="stylesheet"? type="text/css"? href="./mobile.css"? media="screen and (max-device-width: 500px)">? ? -------------------只在設(shè)備屏幕的寬度不大于500px的時(shí)候生效移入的css文件

ps:當(dāng)載入link標(biāo)簽的時(shí)候,路徑上的css文件已經(jīng)下載好了参滴,生效與否只取決于媒體查詢是否生效强岸,會(huì)動(dòng)態(tài)切換。

詳見:媒體查詢

采用媒體查詢的方法來做移動(dòng)端的適配也存在著一些問題砾赔,因?yàn)楸娝苤氤謾C(jī)的型號和樣式太多了,所以我們不能專門為每個(gè)型號的手機(jī)都單獨(dú)去做一個(gè)樣式过蹂,這樣不現(xiàn)實(shí),而且上文也提到了通過百分比布局來控制頁面的伸縮也是存在著問題的聚至,如果想要做出一個(gè)比較好的適配方案就離不開下文所述的內(nèi)容

4.meta標(biāo)簽

meta


手機(jī)在瀏覽網(wǎng)頁的時(shí)候酷勺,手機(jī)會(huì)模擬出與自身屏幕大小不符的分辨率來顯示頁面,這樣就會(huì)使得頁面顯示出現(xiàn)很多問題扳躬,比如我們原本做好了手機(jī)端的媒體查詢脆诉,在屏幕寬度小于450px的時(shí)候更改樣式,但由于它模擬出的分辨率大于450px贷币,這樣就會(huì)讓我們原本想要做出的樣式效果得不到展示击胜,會(huì)嚴(yán)重影響用戶體驗(yàn)。

上面這個(gè)meta標(biāo)簽的作用就是讓手機(jī)預(yù)覽頁面的時(shí)候就是實(shí)際屏幕寬度役纹,而且禁止其縮放偶摔,各種縮放比例都是1.

5.flex布局

flex布局對于屏幕適配也很有幫助,有些地方通過flex布局的實(shí)現(xiàn)方式促脉,效果會(huì)比較合理辰斋。因?yàn)閺椥院凶涌梢愿鶕?jù)視口大小做出調(diào)整策州,比如縮放,換行宫仗。詳見:flex布局

6.動(dòng)態(tài)rem够挂,手機(jī)專用的適配方案

可設(shè)想一下,如果頁面內(nèi)容能夠隨著不同的屏幕而進(jìn)行等比例縮放是不是就能很好的適配呢藕夫?在百分比布局中可以縮放但不能等比例孽糖,問題就在于高度不能基于寬度來設(shè)置,其實(shí)這個(gè)問題可以解決毅贮,下面就開始了解動(dòng)態(tài)rem办悟,手機(jī)專用的適配方案。

①嫩码,rem是一個(gè)長度單位誉尖,我們要知道,1rem等于HTML元素的font-size屬性值

②铸题,通過JS的全局屬性innerWidth來讀取頁面的可視寬度(一般在手機(jī)中就等于屏幕的寬度)

③铡恕,我們可以把HTML的font-size屬性對應(yīng)上innerWidth的值,比如這樣寫:

rem

當(dāng)然你可以加減乘除innerWidth丢间,畢竟頁面寬度很大探熔,如果font-size=350px豈不是很不好操作

④,通過用JS更改HTML元素的font-size屬性值烘挫,rem的值也會(huì)隨之變化诀艰,屏幕越大,rem越大饮六,屏幕越小其垄,rem越小,接下來我們在給頁面內(nèi)容寫長度單位的時(shí)候就可以用rem卤橄,比如绿满,給一個(gè)元素的寬度為1rem,高度為0.5rem窟扑,那么這個(gè)元素就會(huì)隨著不同的屏幕而等比例縮放喇颁,比例就是2:1



?PS:chrome瀏覽器默認(rèn)設(shè)置能顯示的最小字體是12px,也就是說如果給css樣式小于12px,那么還會(huì)顯示12px.這需要手動(dòng)設(shè)置才行.但瀏覽器用戶一般都不會(huì)去設(shè)置這個(gè).所以讓字體不要小于12像素,否則chrome瀏覽器沒法顯示。

當(dāng)我們拿到設(shè)計(jì)稿寫頁面的時(shí)候嚎货,不可能去把所有的px長度計(jì)算成rem橘霎,這樣太過于麻煩且效率低下,所以必須學(xué)會(huì)SCSS殖属,讓SCSS把我們自動(dòng)把px換算成rem姐叁。

SCSS中使用下面的函數(shù)即可計(jì)算了:


? ??????????????????@function px( $px ){

?? ???????????????????????@return $px/$designWidth*10 + rem;

? ??????????????????}


比如你寫一個(gè)div的寬度:


? ? ? ? ? ? ? ? ? ? div{

? ? ? ? ? ? ? ? ? ? ? ? ? ?widnth:px(實(shí)際像素);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

????????????????????}





? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子七蜘,更是在濱河造成了極大的恐慌谭溉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件橡卤,死亡現(xiàn)場離奇詭異扮念,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)碧库,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門柜与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嵌灰,你說我怎么就攤上這事弄匕。” “怎么了沽瞭?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵迁匠,是天一觀的道長。 經(jīng)常有香客問我驹溃,道長城丧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任豌鹤,我火速辦了婚禮亡哄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘布疙。我一直安慰自己蚊惯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布灵临。 她就那樣靜靜地躺著截型,像睡著了一般。 火紅的嫁衣襯著肌膚如雪儒溉。 梳的紋絲不亂的頭發(fā)上宦焦,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音睁搭,去河邊找鬼。 笑死笼平,一個(gè)胖子當(dāng)著我的面吹牛园骆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寓调,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锌唾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晌涕,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滋捶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后余黎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體重窟,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年惧财,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巡扇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垮衷,死狀恐怖厅翔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搀突,我是刑警寧澤刀闷,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站仰迁,受9級特大地震影響甸昏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轩勘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一筒扒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绊寻,春花似錦花墩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至村缸,卻和暖如春祠肥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梯皿。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工仇箱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人东羹。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓剂桥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親属提。 傳聞我的和親對象是個(gè)殘疾皇子权逗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

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