1. 程式人生 > 實用技巧 >VW適配

VW適配

VW適配(不使用JS)

viewport 設定:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">

不同裝置完美視口的大小是不一樣的

iphone6 -- 375

iphone6plus -- 414

由於不同裝置視口和畫素比不同,所以同樣的375個畫素在不同裝置下的意義是不一樣的,比如在iphone6中375就是全屏,而到了plus中375就會缺一塊。

所以在移動端開發時,就不能再使用px來進行佈局了

VW表示的是視口的寬度(viewport width)

100vw = 一個視口的寬度

1vw = 1%視口的寬度

vw這個單位永遠相當於視口寬度進行計算

設計圖的寬度

​ 750px 或 1125px

使用vw作為單位

​ 100vw

設計圖中 一個 48px*35px大小的元素

box1{
    width:48px;
	height:35px;
}

100vw = 750px(設計圖的畫素)

0.13333333333333333333vw = 1px

box1{
    width:6.4vw;
	height:4.667vw;
}

VW適配

1 rem= 1 html的字型大小

網頁中字型大小最小是12px,不能設定比12畫素還小的字型,如果設定了一個小於12px的字型,則字型自動設定為12

所以別想著 設定 font-size:0.13333 vw;然後1 rem = 1px(設計圖)

但是你可以 設定font-size:5.3333 vw; 然後1 rem = 40 px(設計圖)

html{
	font-size:5.3333vw
}
box1{
	width:1.2rem;
	height:0.875rem;
}

vw 適配如何換算元素大小呢?使用公式:(元素大小 / 設計稿大小)* 100vw 將元素大小轉換為 vw 單位的大小。以常用的 750px 設計稿尺寸為例,假設設計稿的某個字型大小是 40px,換算成 vw 單位大小應該為 (40 / 750)* 100vw = 5.33333vw。可以選擇使用構建工具

postcss-px-to-viewport簡化工作流程。

rem適配

rem 適配是縮放處理設計思想的典型代表。rem 是一個相對單位,它永遠相對於根元素(html)的字型大小,這個特性方便了統一管理元素的大小,非常適合用來處理佈局。

viewport設定(與vw相同):

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">

如何合理設定 rem 的大小呢?通常將頁面寬度進行 10 等分,即:

const rem = document.documentElement.clientWidth / 10

這樣,rem 的大小完全是隨螢幕正比變化,就能根據設計稿尺寸換算頁面元素和字型的大小。以常用的 750px 設計稿尺寸為例,假設設計稿的某個字型大小是 40px,換算成 rem 應該為 40 / 75 = 0.53333rem。當然這樣計算很麻煩,可以選擇使用構建工具postcss-pxtorem簡化這些工作。

注意:並非所有單位都需要轉換成 rem,通常只對需要等比縮放的元素進行 rem 換算,對於不需要縮放的元素,比如邊框陰影,使用 px 等其他單位。實際開發中,應該以 rem 單位為基礎,同時結合其他單位協同工作。