国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CSS知識(shí)點(diǎn)匯總(十)--移動(dòng)端適配

這篇具有很好參考價(jià)值的文章主要介紹了CSS知識(shí)點(diǎn)匯總(十)--移動(dòng)端適配。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

怎么做移動(dòng)端的樣式適配?

在移動(dòng)端雖然整體來(lái)說(shuō)大部分瀏覽器內(nèi)核都是 webkit,而且大部分都支持 css3 的所有語(yǔ)法。但手機(jī)屏幕尺寸不一樣,分辨率不一樣,或者有時(shí)需要考慮橫豎屏的問(wèn)題,或者考慮到各式各樣的移動(dòng)端兼容性問(wèn)題。

1、方案選擇

1、使用 css 的媒體查詢 @media
基于 css 的媒體查詢屬性 @media 分別為不同屏幕尺寸的移動(dòng)設(shè)備編寫(xiě)不同尺寸的 css 屬性,示例如下所示。雖然此方法能在一定程度上解決移動(dòng)設(shè)備適配的問(wèn)題,但我們也可以看出其存在以下問(wèn)題,所以其已幾乎被歷史潮流淘汰。

頁(yè)面上所有的元素都得在不同的 @media 中定義一遍不同的尺寸,這個(gè)代價(jià)有點(diǎn)高;
如果再多一種屏幕尺寸,就得多寫(xiě)一個(gè) @media 查詢塊;

@media only screen and (min-width: 375px) {
  .logo {
    width : 62.5px;
  }
}

@media only screen and (min-width: 360px) {
  .logo {
    width : 60px;
  }
}

@media only screen and (min-width: 320px) {
  .logo {
    width : 53.3333px;
  }
}

2、使用 rem 單位
rem(font size of the root element)是指相對(duì)于根元素的字體大小的單位,如果我們?cè)O(shè)置 html 的 font-size 為 16px,則如果需要設(shè)置元素字體大小為 16px,則寫(xiě)為 1rem。但是其還是必須得借助 @media 屬性來(lái)為不同大小的設(shè)備設(shè)置不同的 font-size,相對(duì)上一種方案,可以減少重復(fù)編寫(xiě)相同屬性的代價(jià),簡(jiǎn)單示例如下所示。
我們也能看到該方案存在以下問(wèn)題:

不同的尺寸需要寫(xiě)多個(gè) @media;
所有涉及到使用 rem 的地方,全部都需要調(diào)用方法 calc() ,這個(gè)也挺麻煩的;

@media only screen and (min-width: 375px) {
  html {
    font-size : 375px;
  }
}

@media only screen and (min-width: 360px) {
  html {
    font-size : 360px;
  }
}

@media only screen and (min-width: 320px) {
  html {
    font-size : 320px;
  }
}

//定義方法:calc
@function calc($val){
    @return $val / 1080;
}

.logo{
	width : calc(180rem);
}

3、flexible 適配方案
1、 使用 rem 模擬 vw 特性適配多種屏幕尺寸
它的核心代碼如下所示

// set 1rem = viewWidth / 10
function setRemUnit () {
    var rem = docEl.clientWidth / 10
    docEl.style.fontSize = rem + 'px'
}
setRemUnit();

.2、控制 viewport 的 width 和 scale 值適配高倍屏顯示
設(shè)置 viewport 的 width 為 device-width,改變?yōu)g覽器 viewport(布局視口和視覺(jué)視口)的默認(rèn)寬度為理想視口寬度,從而使得用戶可以在理想視口內(nèi)看到完整的布局視口的內(nèi)容。
等比設(shè)置 viewport 的 initial-scale、maximum-scale、minimum-scale 的值,從而實(shí)現(xiàn) 1 物理像素=1 css像素,以適配高倍屏的顯示效果

var metaEL= doc.querySelector('meta[name="viewport"]');
var dpr = window.devicePixelRatio;
var scale = 1 / dpr
metaEl.setAttribute('content', 'width=device-width, initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); 

4、viewport 適配方案
vw 作為布局單位,從底層根本上解決了不同尺寸屏幕的適配問(wèn)題,因?yàn)槊總€(gè)屏幕的百分比是固定的、可預(yù)測(cè)、可控制的。 viewport 相關(guān)概念如下:

  • vw:是 viewport’s width 的簡(jiǎn)寫(xiě),1vw 等于 window.innerWidth 的 1%;
  • vh:和 vw 類似,是 viewport’s height 的簡(jiǎn)寫(xiě),1vh 等于 window.innerHeihgt 的 1%;
  • vmin:vmin 的值是當(dāng)前 vw 和 vh 中較小的值;
  • vmax:vmax 的值是當(dāng)前 vw 和 vh 中較大的值;
若視覺(jué)稿寬度為 750px,視覺(jué)稿中某個(gè)字體大小為 75px,則我們的 css 屬性只要如下這么寫(xiě),不需要額外的去用 js 進(jìn)行設(shè)置,也不需要去縮放屏幕等;
.logo {
  font-size: 10vw; // 1vw = 750px * 1% = 7.5px
}

1、設(shè)置 meta 標(biāo)簽
在 html 頭部設(shè)置 mata 標(biāo)簽如下所示,讓當(dāng)前 viewport 的寬度等于設(shè)備的寬度,同時(shí)不允許用戶手動(dòng)縮放。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
?
2、px 自動(dòng)轉(zhuǎn)換為 vw
設(shè)計(jì)師一般給寬度大小為 375px 或 750px 的視覺(jué)稿,若采用 vw 方案的話,需要將對(duì)應(yīng)的元素大小單位 px 轉(zhuǎn)換為 vw 單位(需要手動(dòng)計(jì)算將 px 轉(zhuǎn)換為 vw)且不利于后續(xù)代碼維護(hù)
安裝 postcss-px-to-viewport 插件,來(lái)將 px 自動(dòng)轉(zhuǎn)換為 vw
npm install postcss-px-to-viewport --save-dev

2. iPhoneX 適配方案

安全區(qū)域指的是一個(gè)可視窗口范圍,處于安全區(qū)域的內(nèi)容不受圓角(corners)、齊劉海(sensor housing)、小黑條(Home Indicator)影響,如下圖藍(lán)色區(qū)域:
CSS知識(shí)點(diǎn)匯總(十)--移動(dòng)端適配

適配步驟

  • 設(shè)置網(wǎng)頁(yè)在可視窗口的布局方式
    新增 viweport-fit 屬性,使得頁(yè)面內(nèi)容完全覆蓋整個(gè)窗口,只有設(shè)置了 viewport-fit=cover,才能使用 env()
    <meta name="viewport" content="width=device-width, viewport-fit=cover">

  • fixed 完全吸底元素場(chǎng)景的適配

  • 可以通過(guò)加內(nèi)邊距 padding 擴(kuò)展高度:

{
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}

或者通過(guò)計(jì)算函數(shù) calc 覆蓋原來(lái)高度:

{
  height: calc(60px(假設(shè)值) + constant(safe-area-inset-bottom));
  height: calc(60px(假設(shè)值) + env(safe-area-inset-bottom));
}
  • fixed 非完全吸底元素場(chǎng)景的適配
    像這種只是位置需要對(duì)應(yīng)向上調(diào)整,可以僅通過(guò)下外邊距 margin-bottom 來(lái)處理

{
  margin-bottom: constant(safe-area-inset-bottom);
  margin-bottom: env(safe-area-inset-bottom);
}

或者,你也可以通過(guò)計(jì)算函數(shù) calc 覆蓋原來(lái) bottom 值:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-511916.html


{
  bottom: calc(50px(假設(shè)值) + constant(safe-area-inset-bottom));
  bottom: calc(50px(假設(shè)值) + env(safe-area-inset-bottom));
}

到了這里,關(guān)于CSS知識(shí)點(diǎn)匯總(十)--移動(dòng)端適配的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ospf知識(shí)點(diǎn)匯總

    ospf知識(shí)點(diǎn)匯總

    OSPF : 開(kāi)放式最短路徑優(yōu)先協(xié)議 使用范圍:IGP 協(xié)議算法特點(diǎn): 鏈路狀態(tài)型路由協(xié)議,SPF算法 協(xié)議是否傳遞網(wǎng)絡(luò)掩碼:傳遞網(wǎng)絡(luò)掩碼 協(xié)議封裝:基于IP協(xié)議封裝,協(xié)議號(hào)為 89 一.OSPF 特點(diǎn) 1.OSPF 是一種典型的鏈路狀態(tài)型路由協(xié)議 2.傳遞信息稱作LSA,LSA 鏈路狀態(tài)通告,包含路由

    2024年02月09日
    瀏覽(21)
  • react知識(shí)點(diǎn)匯總一

    react知識(shí)點(diǎn)匯總一

    以下是一些React中經(jīng)典的知識(shí)點(diǎn): React是一個(gè)由Facebook開(kāi)發(fā)的UI框架,用于構(gòu)建單頁(yè)面應(yīng)用程序。它的特點(diǎn)和優(yōu)勢(shì)包括: 組件化 :React的應(yīng)用程序主要由多個(gè)組件組成,每個(gè)組件都封裝了自己的邏輯和狀態(tài),使得代碼結(jié)構(gòu)更加清晰。 虛擬DOM :React使用虛擬DOM來(lái)提高渲染效率和

    2024年02月10日
    瀏覽(51)
  • C語(yǔ)言知識(shí)點(diǎn)匯總

    C語(yǔ)言知識(shí)點(diǎn)匯總

    C語(yǔ)言知識(shí)點(diǎn)保姆級(jí)總結(jié),這不得進(jìn)你的收藏夾吃灰?! 拖了很久的C語(yǔ)言所學(xué)知識(shí)的簡(jiǎn)單小結(jié),內(nèi)容有點(diǎn)多,第一次總結(jié)也可能有錯(cuò)誤或者不全面,歡迎隨時(shí)補(bǔ)充說(shuō)明! ? 用不同數(shù)據(jù)類型所定義的變量所占空間大小不一樣,定義的變量不是保存于數(shù)據(jù)類型中,而是因?yàn)橹挥?/p>

    2024年01月23日
    瀏覽(26)
  • JVM知識(shí)點(diǎn)匯總(2)

    目錄 一. 垃圾回收的優(yōu)點(diǎn)和原理. 并考慮兩種回收機(jī)制 二. 垃圾回收器的基本原理是什么? 垃圾回收器可以馬上回收內(nèi)存嗎? 有什么辦法主動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收? 三. Java 中會(huì)存在內(nèi)存泄露嘛? 請(qǐng)簡(jiǎn)單描述 四.Ststem.gc() 和 Runtime.gc() 會(huì)做什么事情 五. finalize() 方法是什么時(shí)候

    2024年02月12日
    瀏覽(17)
  • Vue知識(shí)點(diǎn)匯總【持更】

    Vue知識(shí)點(diǎn)匯總【持更】

    目錄 1 vue的兩個(gè)特性 1.1 數(shù)據(jù)驅(qū)動(dòng)視圖 1.2 雙向數(shù)據(jù)綁定? 2?MVVM工作原理 3?vue 的指令 3.1 內(nèi)容渲染指令 3.2?屬性綁定指令 3.3?事件綁定指令 3.4 事件修飾符? 3.5?按鈕修飾符 3.6?雙向數(shù)據(jù)綁定指令 3.7 條件渲染指令 3.8?列表渲染指令? 4?vue 的生命周期和生命周期函數(shù)? 4.1 生命

    2024年02月15日
    瀏覽(64)
  • 系統(tǒng)分析師知識(shí)點(diǎn)匯總

    目錄 1.計(jì)算機(jī)組成 1.1計(jì)算機(jī)組成與分類 1.1.1計(jì)算機(jī)的組成 1.2.1主存儲(chǔ)器(內(nèi)存) 1.2.2輔助存儲(chǔ)器(外存磁盤如硬盤) 1.2.3Cache緩存 1.3輸入輸出接口 1.3.1輸入輸出方式 1.3.2總線和接口 1.4各種體系結(jié)構(gòu) 1.4.2流水線技術(shù) 1.4.3并行處理 1.4.4互聯(lián)網(wǎng)絡(luò) 2.操作系統(tǒng) 2.1操作系統(tǒng)的類型與結(jié)

    2023年04月08日
    瀏覽(95)
  • iOS練手項(xiàng)目知識(shí)點(diǎn)匯總

    iOS練手項(xiàng)目知識(shí)點(diǎn)匯總

    Objective-C是一種面向?qū)ο蟮木幊陶Z(yǔ)言,它支持元編程。元編程是指編寫(xiě)程序來(lái)生成或操縱其他程序的技術(shù)。 Objective-C中,元編程可以使用Objective-C的動(dòng)態(tài)特性來(lái)實(shí)現(xiàn)。例如可以使用Objective-C的運(yùn)行時(shí)函數(shù)來(lái)動(dòng)態(tài)地創(chuàng)建類、添加屬性和方法等等。 Objective-C是一種動(dòng)態(tài)編程語(yǔ)言,它

    2024年02月10日
    瀏覽(21)
  • 計(jì)算機(jī)基礎(chǔ)知識(shí)點(diǎn)匯總

    1、指令是指示計(jì)算機(jī)執(zhí)行某種操作的命令,包括操作碼和地址碼兩部分。 2、目前常見(jiàn)的指令系統(tǒng)有復(fù)雜指令系統(tǒng)(CISC)和精簡(jiǎn)指令系統(tǒng)(RISC)。 3、計(jì)算機(jī)的工作過(guò)程:取指令、分析指令、執(zhí)行指令。 4、未配置任何軟件的計(jì)算機(jī)叫裸機(jī),注意不是指安裝過(guò)操作系統(tǒng)的計(jì)算

    2024年02月10日
    瀏覽(26)
  • [深度學(xué)習(xí)]1. 深度學(xué)習(xí)知識(shí)點(diǎn)匯總

    [深度學(xué)習(xí)]1. 深度學(xué)習(xí)知識(shí)點(diǎn)匯總

    本文記錄了我在學(xué)習(xí)深度學(xué)習(xí)的過(guò)程中遇到過(guò)的不懂的知識(shí)點(diǎn),為了方便翻閱,故將其發(fā)表于此,隨時(shí)更新,供大家參考。 在深度學(xué)習(xí)中, 測(cè)試精度 和 訓(xùn)練精度 是兩個(gè)重要的指標(biāo),它們分別代表了模型在 測(cè)試集上的分類正確率 和 訓(xùn)練集上的分類正確率 。測(cè)試集是用來(lái)評(píng)

    2024年02月10日
    瀏覽(21)
  • 【小程序】常用方法、知識(shí)點(diǎn)匯總1

    【小程序】常用方法、知識(shí)點(diǎn)匯總1

    歡迎來(lái)到《小5講堂》 這是《小程序》系列文章,每篇文章將以博主理解的角度展開(kāi)講解, 溫馨提示:博主能力有限,理解水平有限,若有不對(duì)之處望指正! 最近在開(kāi)發(fā)微信小程序,時(shí)間久了總會(huì)把一些常用的方法忘記了, 因此這篇文章匯總下一些接觸到且容易忘記的知識(shí)

    2024年04月11日
    瀏覽(30)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包