響應式網站設計基本觀念(4):viewport相對寬度與相對單位

Lucy’s cornerstone
狐狸的葡萄酒
Published in
3 min readApr 1, 2020

設定CSS的viewport時,會需要使用相對單位來描述。

Photo by Alexander Schimmeck on Unsplash

我們之前提及的width=device-width,是一種相對寬度的觀念,在不同裝置之間轉換很好用,為什麼呢?因為如果寬度是320p的絕對單位,在寬度大於320p的裝置,內容會被拉大;在寬度小於320p的裝置,內容需要橫向滾動條才能看到整體內容。如果是相對寬度、相對單位,是一種比較、比例的概念,在每個裝置上都可以套用。

也因此,相對單位在描述頁面元素時,比絕對單位好用。

以下介紹相對單位。

1.以父元素比例計算 — 百分比

最常用的相對單位,在行動裝置上時,可用來改變網頁Viewport,讓網頁內容呈現動態縮放。

當資訊來源是設計稿的時候,你會需要轉換絕對單位長度到相對單位長度。

公式:子元素絕對單位/父元素的絕對單位=百分比

例如,元件Wrapper(960px)包住了一個container(900px),此時wrapper是父元素,container是子元素,900/960=93.75%。

2.以Viewport比例計算 — Viewport百分比

當我們想做全版的視覺效果時,會用到此種相對單位。

viewport百分比(viewport percentage lengths),會隨著viewport的尺寸而縮放。

vw = viewport的寬度vh = viewport的高度vmin = vw或vh當中的最小值vmax = vw或vh當中的最大值

如果viewport的寬是1920像素、高是1080像素,1vw等於是 1% viewport的寬,也就是19.2像素;1vh=10.8像素。此時vh>vw,1vmax=1vw,1vmin=1vh。

3.字體相對單位 — em

以父元素的字體大小為基準。例如父元素字體為16px,在子元素1em是16px,0.5em是8px,2em是32px。

4.相對比例的反動 — 限制彈性

當網頁元素都以相對單位來控制時,會隨著比例而縮放大小。

但是如果我們不希望內容不適合變太大或太小,就需要追加設定絕對單位長度來限制最大/最小長度,如:min-width、max-width、min-height、max-height。這就是限制彈性。

(1)max-width的情境

通常我們會將網頁內容包在container中,這樣有置中效果;而width=100%是通常設定,但是當螢幕很長的時候,內容就會被拉長,這不是我們想要的。

.container {
width: 90%;
max-width: 960px;
}

如果把width設定為90%,max-width設定為960px,這樣至少內容不會拉長到太誇張的地步。

(1)min-width的情境

可能用在表單的部分,當有設定min-width時,表單的寬度是決不會小於它;如果沒有設定min-width,暗示可能寬度是比較小的,因為沒有設定最小多少。

--

--

Lucy’s cornerstone
狐狸的葡萄酒

一位護理師,也是一位多元學習者。目前也在學習多益、股票投資,對很多東西都充滿好奇。