[轉(zhuǎn)發(fā)]聊聊PC端頁面適配

目也pc端有適配的需求:目前我們pc項(xiàng)目的設(shè)計(jì)稿尺寸是寬度1920,高度最小是1080。

適配目標(biāo):

1.在不同分辨率的電腦上,網(wǎng)頁可以正常顯示

2.放大或者縮小屏幕,網(wǎng)頁可以正常顯示

對于寬度的適配


對于寬度適配:

首先設(shè)置html,body{width:100%;overflow-x:hidden;}

然后我們可以把頁面分解為背景層(一般寬度都會(huì)大于1200px)和內(nèi)容層(一般寬度都會(huì)小于1200px),對于背景層,我們一般都要求完全鋪開,主要有以下幾種情況:

1.背景色為純色:我們可以直接.box{background:#fff;width:100%;}則可以鋪滿

2.背景設(shè)置為背景圖片:

我們有情況用.box{background: #fff url(images/01.png) no-repeat center center;width:100%;height:100px;}

有的情況需要用:.box{background: url(images/01.png) repeat left center;width:100%;height:100px;}

對于內(nèi)容層我們保證我們的內(nèi)容都封裝在盒子內(nèi),然后margin:0 auto;保持居中顯示,盒子里面的內(nèi)容,我們再另外調(diào)整

?對于高度的適配

?一般情況下,頁面都比較高,我們通過給每個(gè)模塊設(shè)置具體的高度值來做頁面,然后頁面會(huì)出現(xiàn)導(dǎo)航條,我們可以拉動(dòng)導(dǎo)航條來瀏覽,但是有的頁面的需求是主體內(nèi)容直接在不同的瀏覽器上都能完整顯示,不通過導(dǎo)航條來瀏覽

如何做?

1、百分比的應(yīng)用

百分比的應(yīng)用在于主視角的定位和縮放,百分比的取值以原設(shè)計(jì)稿的尺寸為標(biāo)準(zhǔn)。什么意思呢?舉個(gè)栗子,一個(gè)元素在原設(shè)計(jì)稿里,量出來距離頂部是 200px,如果寫死可能是top:200px 或者margin-top:200px,現(xiàn)在要轉(zhuǎn)成百分比,那么這個(gè)值可能就是23.3%。這個(gè)值怎么算?如果設(shè)計(jì)稿是 1080,200/1080=18.51%這樣計(jì)算出來百分比的值。

但是,有個(gè)地方要注意,流體布局下,百分比的值是根據(jù)父層計(jì)算的;absolute布局的元素是根據(jù)最近的relative父層計(jì)算的;fixed布局的元素是根據(jù)window的可視區(qū)域計(jì)算的。

所以,如果要達(dá)到適配的效果,不只是當(dāng)前元素需要用百分比值,其參考計(jì)算的元素也是要?jiǎng)討B(tài)變化的。

另 外還有一個(gè)就是圖片縮放的問題,pc很多主視角都是切圖的,但是pc不能直接用background-size(雖然強(qiáng)大的filter兼容可以使低版本 ie支持,但是之前說過用filter都要特別小心,特別是涉及到j(luò)s交互操作的,很多坑)。在pc我們可以直接通過img標(biāo)簽來插入圖片,通過設(shè)置 img寬度為100%,高度auto,然后讓它根據(jù)父層來等比縮放來實(shí)現(xiàn)(img標(biāo)簽實(shí)現(xiàn)縮放引起的另一個(gè)問題是該圖片不能用雪碧圖了,但pc的主視角不 是很多,影響不大)。

2、js監(jiān)測

需要js主要有兩個(gè)原因:

上面說了,百分比是要有父層做參照物的,那么如果父層都用百分比,那就是最終是根據(jù)window來參照的,因?yàn)閜c絕大部分都是寬屏設(shè)備,而且他們的比例是不一致的,我們來計(jì)算下(190是減去瀏覽器工具條、window桌面條、我們頁面通用頂條):

設(shè)計(jì)稿:1920/(1080-190) = 2.16

14寸普通筆記本:1366/(768-190) = 2.36

所以,我們不能寬高都100%按照屏幕尺寸來計(jì)算。另外考慮到主要是高度對pc頁面的主視角影響比較大,我們需要借助js來計(jì)算確定一個(gè)最小高度臨界值(當(dāng)然這個(gè)可以用css的min-height來實(shí)現(xiàn));

另外一個(gè)是,通過js判斷最小高度臨界值,再加上這個(gè)最小臨界值的class,為了處理那些特殊的布局或者百分比無法完全解決適配的元素,比如字體的相關(guān)布局

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • pc端的適配需求:目前我們pc項(xiàng)目的設(shè)計(jì)稿尺寸是寬度1920,高度最小是1080。 適配目標(biāo):1.在不同分辨率的電...
    LIsPeri閱讀 22,650評論 0 7
  • 剛開始做移動(dòng)端web開發(fā)的同學(xué)應(yīng)該都碰到過頁面適配問題,為什么我在開發(fā)手機(jī)上調(diào)試好的頁面在其他手機(jī)會(huì)有這樣或那樣的...
    留七七閱讀 19,757評論 5 80
  • title: 移動(dòng)端Web頁面適配淺析date: 2018-01-31 16:38:01tags: 移動(dòng)端 適配 ...
    豆板兒閱讀 12,477評論 0 16
  • 在移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的今天,手機(jī)的種類和尺寸越來越多,作為前端的小伙伴們可能會(huì)越來越頭疼,但又不得不去適配一款又一...
    keenjaan閱讀 27,206評論 9 86
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,090評論 1 92

友情鏈接更多精彩內(nèi)容