溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

響應(yīng)式布局中的CSS相對(duì)量

發(fā)布時(shí)間:2020-07-27 13:03:56 來(lái)源:網(wǎng)絡(luò) 閱讀:362 作者:張立達(dá) 欄目:網(wǎng)絡(luò)安全

一個(gè)響應(yīng)式布局,要能夠根據(jù)設(shè)備屏幕尺寸的改變,動(dòng)態(tài)的調(diào)整頁(yè)面內(nèi)容,展現(xiàn)不同的設(shè)計(jì)風(fēng)格。
在進(jìn)行響應(yīng)式的 CSS 代碼編寫(xiě)過(guò)程中,經(jīng)常會(huì)用到一些相對(duì)尺寸,以達(dá)到相對(duì)定位的目的。例如,常見(jiàn)的響應(yīng)式布局中需要用到“自適應(yīng)的圖片”、“流動(dòng)布局”等技術(shù)。

體現(xiàn)在 CSS 代碼編寫(xiě)上,就需要前端開(kāi)發(fā)人員精準(zhǔn)掌握特定屬性的相對(duì)量表示方法。
然而,其中一些相對(duì)量的計(jì)算方法很容易混淆。

本文在完整梳理全部 CSS 屬性基礎(chǔ)上,將其中的“相對(duì)單位、百分比相對(duì)量、數(shù)字相對(duì)量”清晰的羅列出來(lái)。
進(jìn)而為后續(xù)的響應(yīng)式設(shè)計(jì)編碼提供依據(jù)。

值得注意的是,百分比相對(duì)量十分容易混淆,不同 CSS 屬性的百分比值的計(jì)算方法不同,
有的相對(duì)于父元素、有的相對(duì)于包圍盒、有的相對(duì)于其他屬性、有的相對(duì)于寬度、有的相對(duì)于高度,細(xì)節(jié)千差萬(wàn)別。

CSS 屬性的瀏覽器兼容性,請(qǐng)查詢(xún) Can I Use。
已經(jīng)被標(biāo)準(zhǔn)廢棄(Deprecated)的屬性,沒(méi)有列出。
歡迎您與我一同完善這個(gè)清單,提供數(shù)據(jù)的讀者姓名將在文中標(biāo)注。
(通過(guò)評(píng)論方式提供遺漏的相對(duì)量)

一、相對(duì)單位和量

視口單位 (viewport)

vh:視口高度的 1/100
vw:視口寬度的 1/100
vmin:視口寬度、高度中最小值的 1/100
vmax:視口寬度、高度中最大值的 1/100

字體單位

em:元素 font-size 的大小,如果在 font-size 屬性使用 em,則 em 表示該元素繼承下來(lái)的 font-size 大小。
rem:根元素 <html> 的font-size 大小。如果 rem 用在根元素的 font-size 上,則 1 rem 表示根元素 font-size 的初始值。

<position>:偏移量的百分比是相對(duì)于元素盒的寬度、高度。水平方向(x軸)的百分比相對(duì)于元素盒的寬度。豎直方向(y軸)的百分比相對(duì)于元素盒的高度。

函數(shù)

rgb/rgba:RGB 三個(gè)通道,正整數(shù)值的取值范圍為:0 - 255。百分?jǐn)?shù)值的取值范圍為:0.0% - 100.0%。Alpha 通道,a = 0表示透明,a = 1 表示不透明。

hsl/hslas 通道表示飽和度,取值范圍是 0 - 100%。l 通道表示亮度,取值范圍是 0 - 100%。Alpha 通道,a = 0表示透明,a = 1 表示不透明。

二、數(shù)字相對(duì)量

小數(shù)相對(duì)量指的是 CSS 規(guī)范中的<number>量(查看 MDN 規(guī)范)。
整數(shù)相對(duì)量指的是 CSS 規(guī)范中的<integer>量(查看 MDN 規(guī)范)。

小數(shù)相對(duì)量

font-size-adjust(CSS3):設(shè)置小寫(xiě)x字母的高度。計(jì)算方法為指定的 數(shù)字值 乘以 font-size。
zoom:數(shù)字值指的是縮放引子自己。

整數(shù)相對(duì)量

border-p_w_picpath-width:指的是元素 border-width 計(jì)算值的倍數(shù)。

三、百分比相對(duì)量

百分比相對(duì)量指的是 CSS 規(guī)范中的<percentage>量(查看 MDN 規(guī)范)。

許多長(zhǎng)度屬性使用百分比,例如

  • width、height

  • max-height/min-height、max-width/min-width

  • margin

  • padding

  • font-size

  • border-width

  • text-shadow

  • background-size

  • background-position

  • top、bottom、left、right

  • line-height

  • text-indent

  • vertical-align

注意:只有計(jì)算后的屬性會(huì)被繼承。當(dāng)一個(gè)父屬性使用百分比時(shí),在繼承屬性(子屬性)上會(huì)計(jì)算父屬性的通過(guò)百分比計(jì)算后的實(shí)際值,不會(huì)將百分比繼承下來(lái)。

“定位”屬性

top/bottom:在top屬性中,使用 % ,表示相對(duì)于_包含塊_的高度百分比。可以為負(fù)值。
right/left:表示相對(duì)于_包含塊_的寬度百分比??梢詾樨?fù)值。

“彈性盒模型”屬性

查看彈性盒模型。

flex-basis:百分比指的是 flex 容器的內(nèi)部主尺寸(inner main size)的百分比。
即,a percentage of the parent flex container main size property

min-height/min-width:初始值為0。

“尺寸”屬性

width/max-width/min-width:指的是_包含塊_的寬度百分比。如果包含塊的寬度依賴(lài)本元素寬度,則布局結(jié)果未定義。

height/max-height/min-height:指的是元素生成盒(generated box)的_包含塊_(containing block)的高度。如果包含塊的高度沒(méi)有顯式指定(依賴(lài)于內(nèi)容高度),并且本元素沒(méi)有絕對(duì)定位,則 height 值計(jì)算為 auto,max-height 值計(jì)算為 none,min-height 值計(jì)算為 0。根元素的百分比高度相對(duì)于根元素的初始包含塊。

“外邊距”屬性

margin:指的是_包含塊_的寬度百分比。可以是負(fù)值。
margin-top/margin-bottom:指的是_包含塊_的寬度百分比。
margin-left/margin-right:指的是_最近包含塊_的寬度百分比。

“內(nèi)邊距”屬性

padding:指的是_包含塊_的寬度百分比。
padding-top/padding-bottom:指的也是_包含塊_的寬度百分比。
padding-left/padding-right:指的也是包含塊的寬度百分比。

“邊框”屬性

border-p_w_picpath:縮寫(xiě)形式,其中的 border-p_w_picpath-slice、border-p_w_picpath-width 有百分比設(shè)置。border-p_w_picpath 的詳細(xì)用法,請(qǐng)參考這里。
border-p_w_picpath-slice:可以制定最多4個(gè)值,其中的某個(gè)值的百分比指的是相對(duì)于圖片尺寸的百分比。
border-p_w_picpath-width:指的是邊界圖像區(qū)域(border p_w_picpath area)的尺寸百分比。將要繪制邊界圖像的整個(gè)區(qū)域稱(chēng)為邊界圖像區(qū)域。border-p_w_picpath-width屬性用于縮放 border-p_w_picpath-slice。

響應(yīng)式布局中的CSS相對(duì)量

border-radius:指的是圓形半徑或橢圓形的長(zhǎng)半軸、短半軸。水平方向的軸的百分比值對(duì)應(yīng)邊界盒(border box)的寬度。垂直方向的軸的百分比值對(duì)應(yīng)邊界盒(border box)的高度。
border-top-left-radius/border-top-right-radius/border-bottom-right-radius/border-bottom-left-radius:圓角水平軸的值對(duì)應(yīng)邊界盒的寬度。圓角垂直軸的值對(duì)應(yīng)邊界盒的高度。

“背景”屬性

background:縮寫(xiě)中的屬性值分別對(duì)應(yīng)各自的百分比意義。如 background-position、background-size。
background-position:百分比指的是背景定位區(qū)域的尺寸減去背景圖片的尺寸。這里的尺寸指的是,水平偏移的寬度或者垂直偏移的高度。
background-size:百分比值相對(duì)于背景定位區(qū)域。background-size用于確定背景圖片的大小。

“字體”

font縮寫(xiě),百分比值用于設(shè)置 font-size 分量,含義與 font-size 相同。
font-size:百分比值相對(duì)于父元素的 font-size 值。
line-height:百分比值相對(duì)于元素自身的 font-size 值。

“文本”

text-indent:百分比值相對(duì)于元素包圍盒(the containing block)的寬度。
word-spacing:百分比值相對(duì)于受影響文字(glyph)寬度。
vertical-align:百分比值相對(duì)于元素自身的 line-height 屬性值。

“用戶(hù)界面”

zoom:百分比值指的是縮放引子自己。

“2D變換” (實(shí)驗(yàn))

transform:百分比值相對(duì)于包圍盒(bounding box)尺寸。
transform-origin:百分比值相對(duì)于包圍盒(bounding box)尺寸。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI