国产乱子轮XXX农村-精品久久国产字幕高潮-精品国产乱码久久久久久1区2区-国产AV一区二区三区传媒

移動端適配方法

發(fā)布時間:2025-06-17 點擊:26
前端代碼的編寫永遠逃不過“兼容”二詞,從前pc時代,因為ie的傲嬌,導(dǎo)致程序猿們一直在兼容ie的道路上掙扎,如今移動設(shè)備的普及,仿佛讓我們看到了希望,仿佛馬上就要擺脫ie了,可是!一波還未平息,一波又來侵襲~移動端確實不用考慮ie了,各種css新特性也用的爽到飛起,但一座大山壓了過來,那就是分辨率的適配,移動端由于展示區(qū)域比較小,因此對于頁面在不同分辨率手機上的展示細節(jié)也要求更加嚴格,這時像pc端有些固定寬高的布局方式顯然不適應(yīng),我們被要求對于不同大小手機頁面能自適應(yīng),真是非常有(tong)趣(ku)呢
話不多說,下面就總結(jié)了一些移動端常用的適配手法:
一、百分比
使用場景:只要求寬度隨屏幕自適應(yīng),比如文字塊
百分比在pc端自適應(yīng)上也經(jīng)常用到,著實相當好用,但它一般用于寬度自適應(yīng)的設(shè)置,高度設(shè)置百分比時,要求其父類元素有明確高度。
1、利用百分比實現(xiàn)填充全屏
為了讓元素設(shè)置height:100%生效,并且正好為窗口高度,則需要給html和body元素以及它所有的父元素都設(shè)置高度100%。
例如:
<html style=height: 100%;>
<body style=height: 100%;>
<div class=wrap style=height: 100%; width:100%>
填充全屏啦
</div>
</body>
</html>
在使用height: 100%;時需要注意的一些事項
margins 和 padding 會讓你的頁面出現(xiàn)滾動條,也許這是你不希望的。
如果你的元素實際高度大于你設(shè)定的百分比高度,那元素的高度會自動擴展。
寫到這里我突然想插個題外話,對于absolute定位的元素,用height:100%顯然也是無效的,因為此時它已經(jīng)脫離了文檔流,此時它的高度由自身內(nèi)容撐開。這是如果我希望它填滿父盒子,怎么做?這里有個黑魔法,設(shè)置它的top,left,bottom,right均為0,這時盒子就會被拉伸至填滿父盒子。
2、利用百分比實現(xiàn)寬高比固定
有時,我們希望寬度自適應(yīng),高度隨寬度變化而變化,并有固定的寬高比。
讓我們縷縷,用height百分比顯然不行,height百分比是以父元素高度為基準的,而我們需要以寬度為基準來設(shè)置高度。
所以這里可以用到padding-top或者padding-bottom,padding是以父元素的width為基準的。我們可以設(shè)置元素的height:0,然后用padding-bottom將元素撐開,以實現(xiàn)固定寬高比。
二、rem
使用場景:對于圖片等對高度自適應(yīng)有要求的場景
rem單位:以頁面根字體的大小,也就是html元素字體的大小為基準,例如
html{
font-size:16px;
}
那么1rem等于16px。
所以使用時,我們只要讓根字體大小隨屏幕大小自適應(yīng),那頁面中所有使用rem單位來設(shè)置寬高的元素,大小也會隨屏幕大小自適應(yīng)了。
根據(jù)不同屏幕大小設(shè)置根字體大小有兩種方法:
1、css方法設(shè)置rem
利用媒體查詢,根據(jù)不同的屏幕大小進行設(shè)置,缺點就是一般只列舉一些代表性的屏幕大小,自適應(yīng)不能充分覆蓋所有范圍
html{
font-size:10px
}
@media screen and (min-width:321px) and (max-width:375px){
html{
font-size:11px
}
}
@media screen and (min-width:376px) and (max-width:414px){
html{
font-size:12px
}
}
@media screen and (min-width:415px) and (max-width:639px){
html{
font-size:15px
}
}
@media screen and (min-width:640px) and (max-width:719px){
html{
font-size:20px
}
}
@media screen and (min-width:720px) and (max-width:749px){
html{
font-size:22.5px
}
}
@media screen and (min-width:750px) and (max-width:799px){
html{
font-size:23.5px
}
}
@media screen and (min-width:800px){
html{
font-size:25px
}
}
2、js方法設(shè)置rem
利用js設(shè)置根字體大小,所以若改變發(fā)生在渲染完成之后,則會引起回流,導(dǎo)致閃屏現(xiàn)象。因此使用這種方法時,應(yīng)將js代碼放入head頭部中并且在css引入之前。
(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 = 20 * (clientwidth / 375) + 'px';
};
recalc();
if (!doc.addeventlistener) return;
win.addeventlistener(resizeevt, recalc, false);
})(document, window);
上面clientwidth為實際屏幕的寬度,而375為設(shè)計稿基于的參考屏幕寬度,20則是當實際屏幕寬度等于參考屏幕寬度時,1rem的大小。代碼的關(guān)鍵參數(shù)20和375是這樣設(shè)置的:
a) 由于提供的設(shè)計稿現(xiàn)在基本都是以iphone6/7/8為參考的,寬度為750px,dpr為2,所以計算rem時的參考屏幕寬度可以設(shè)置為375。
b) 由于chrome的最小字體是12px,又為了計算方便,所以可以設(shè)置1rem的大小為20px
應(yīng)用過程中,比如我們拿到了一個750的設(shè)計稿,那么首先,將設(shè)計稿里的數(shù)值除以2,得到按手機屏幕大小布局的數(shù)值(這也是375的由來)。然后,再除以20就可以將設(shè)計稿中的px轉(zhuǎn)化為rem了。
三、媒體查詢
使用場景:一般利用媒體查詢來進行特殊處理,比如
1、iphonex這類全屏的適配
2、在適配dpr為3的iphone plus或者pad橫屏等超級大屏?xí)r,需要根據(jù)業(yè)務(wù)需求設(shè)置臨界值,然后展示不同內(nèi)容或者替換不同分辨率圖片(也就是常說的2倍圖、3倍圖的使用)等
四、vw、vh
vw是以屏幕寬度為基準的百分比單位,1vw=1% * devicewidth
vh是以屏幕高度為基準的百分比單位,1v=1% * deviceheight
vw,vh確實很好用,但是目前使用時仍需考慮兼容性的問題,在國內(nèi)一些手機自帶瀏覽器里(比如華為)會失效,并且據(jù)說碰上x5內(nèi)核時也容易踩坑 。

企業(yè)網(wǎng)站建設(shè)中怎么做可以提高用戶回頭率增加客戶黏性
常見的不利于網(wǎng)站優(yōu)化的幾種做法
蕪湖到鄧州物流專線
8個注意事項,設(shè)計最佳網(wǎng)頁動效
跨境電商海外倉(3):WMS的庫存功能設(shè)計
蕪湖到南縣物流專線
網(wǎng)站優(yōu)化需要做什么?怎樣才能解決排名偏低的問題?
嘉興到新安物流專線