響應式布局中的CSS相對量

一個響應式布局,要能夠根據設備屏幕尺寸的改變昼扛,動態(tài)的調整頁面內容,展現(xiàn)不同的設計風格欲诺。
在進行響應式的 CSS 代碼編寫過程中抄谐,經常會用到一些相對尺寸,以達到相對定位的目的扰法。例如蛹含,常見的響應式布局中需要用到“自適應的圖片”、“流動布局”等技術塞颁。

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

本文在完整梳理全部 CSS 屬性基礎上,將其中的“相對單位伴网、百分比相對量蓬推、數(shù)字相對量”清晰的羅列出來。
進而為后續(xù)的響應式設計編碼提供依據澡腾。

值得注意的是沸伏,百分比相對量十分容易混淆糕珊,不同 CSS 屬性的百分比值的計算方法不同,
有的相對于父元素毅糟、有的相對于包圍盒红选、有的相對于其他屬性、有的相對于寬度姆另、有的相對于高度喇肋,細節(jié)千差萬別。

CSS 屬性的瀏覽器兼容性迹辐,請查詢 Can I Use苟蹈。
已經被標準廢棄(Deprecated)的屬性,沒有列出右核。
歡迎您與我一同完善這個清單,提供數(shù)據的讀者姓名將在文中標注渺绒。
(通過評論方式提供遺漏的相對量)

一贺喝、相對單位和量
視口單位 (viewport)

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

字體單位

em:元素 font-size 的大小躏鱼,如果在 font-size 屬性使用 em,則 em 表示該元素繼承下來的 font-size 大小殷绍。
rem:根元素 <html> 的font-size 大小染苛。如果 rem 用在根元素的 font-size 上,則 1 rem 表示根元素 font-size 的初始值主到。

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

函數(shù)

rgb/rgba:RGB 三個通道,正整數(shù)值的取值范圍為:0 - 255牧牢。百分數(shù)值的取值范圍為:0.0% - 100.0%看锉。Alpha 通道,a = 0表示透明塔鳍,a = 1 表示不透明伯铣。

hsl/hsla:s 通道表示飽和度,取值范圍是 0 - 100%轮纫。l 通道表示亮度腔寡,取值范圍是 0 - 100%。Alpha 通道蜡感,a = 0表示透明蹬蚁,a = 1 表示不透明恃泪。

二、數(shù)字相對量
小數(shù)相對量指的是 CSS 規(guī)范中的<number>量(查看 MDN 規(guī)范)犀斋。
整數(shù)相對量指的是 CSS 規(guī)范中的<integer>量(查看 MDN 規(guī)范)贝乎。

小數(shù)相對量

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

整數(shù)相對量

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

三虫几、百分比相對量
百分比相對量指的是 CSS 規(guī)范中的<percentage>量(查看 MDN 規(guī)范)锤灿。

許多長度屬性使用百分比,例如

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
注意:只有計算后的屬性會被繼承。當一個父屬性使用百分比時倘是,在繼承屬性(子屬性)上會計算父屬性的通過百分比計算后的實際值亭枷,不會將百分比繼承下來。

“定位”屬性

top/bottom:在top屬性中搀崭,使用 % 叨粘,表示相對于包含塊的高度百分比×龆茫可以為負值升敲。
right/left:表示相對于包含塊的寬度百分比『浯可以為負值冻晤。

“彈性盒模型”屬性

查看彈性盒模型。

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

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

“尺寸”屬性

width/max-width/min-width:指的是包含塊的寬度百分比锦茁。如果包含塊的寬度依賴本元素寬度攘轩,則布局結果未定義。

height/max-height/min-height:指的是元素生成盒(generated box)的包含塊(containing block)的高度码俩。如果包含塊的高度沒有顯式指定(依賴于內容高度)度帮,并且本元素沒有絕對定位,則 height 值計算為 auto,max-height 值計算為 none笨篷,min-height 值計算為 0瞳秽。根元素的百分比高度相對于根元素的初始包含塊。

“外邊距”屬性

margin:指的是包含塊的寬度百分比率翅×防可以是負值。
margin-top/margin-bottom:指的是包含塊的寬度百分比冕臭。
margin-left/margin-right:指的是最近包含塊的寬度百分比腺晾。

“內邊距”屬性

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

“邊框”屬性

border-image:縮寫形式,其中的 border-image-slice托慨、border-image-width 有百分比設置鼻由。border-image 的詳細用法,請參考這里厚棵。
border-image-slice:可以制定最多4個值嗡靡,其中的某個值的百分比指的是相對于圖片尺寸的百分比。
border-image-width:指的是邊界圖像區(qū)域(border image area)的尺寸百分比窟感。將要繪制邊界圖像的整個區(qū)域稱為邊界圖像區(qū)域。border-image-width屬性用于縮放 border-image-slice歉井。

所指定的4個值表示柿祈,從元素的邊界圖像區(qū)域向內側各個邊的縮進

border-radius:指的是圓形半徑或橢圓形的長半軸、短半軸哩至。水平方向的軸的百分比值對應邊界盒(border box)的寬度躏嚎。垂直方向的軸的百分比值對應邊界盒(border box)的高度。
border-top-left-radius/border-top-right-radius/border-bottom-right-radius/border-bottom-left-radius:圓角水平軸的值對應邊界盒的寬度菩貌。圓角垂直軸的值對應邊界盒的高度卢佣。

“背景”屬性

background:縮寫中的屬性值分別對應各自的百分比意義。如 background-position箭阶、background-size虚茶。
background-position:百分比指的是背景定位區(qū)域的尺寸減去背景圖片的尺寸。這里的尺寸指的是仇参,水平偏移的寬度或者垂直偏移的高度嘹叫。
background-size:百分比值相對于背景定位區(qū)域。background-size用于確定背景圖片的大小诈乒。

“字體”

font:縮寫罩扇,百分比值用于設置 font-size 分量,含義與 font-size 相同。
font-size:百分比值相對于父元素的 font-size 值喂饥。
line-height:百分比值相對于元素自身的 font-size 值消约。

“文本”

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

“用戶界面”

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

“2D變換” (實驗)

transform:百分比值相對于包圍盒(bounding box)尺寸集侯。
transform-origin:百分比值相對于包圍盒(bounding box)尺寸被啼。

參考資料
http://acgtofe.com/posts/2014/06/percentage-in-css
http://www.yuuuuc.me/percentage-in-css/
https://segmentfault.com/a/1190000006736433
所有 CSS 屬性取百分比值的意義,https://web.archive.org/web/20150906065047/https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_percentage_values
屬性分類方法棠枉,http://www.w3chtml.com/css3/properties/positioning/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末浓体,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辈讶,更是在濱河造成了極大的恐慌命浴,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贱除,死亡現(xiàn)場離奇詭異生闲,居然都是意外死亡,警方通過查閱死者的電腦和手機月幌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門碍讯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扯躺,你說我怎么就攤上這事捉兴。” “怎么了录语?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵倍啥,是天一觀的道長。 經常有香客問我澎埠,道長虽缕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任蒲稳,我火速辦了婚禮氮趋,結果婚禮上,老公的妹妹穿的比我還像新娘江耀。我一直安慰自己凭峡,他們只是感情好,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布决记。 她就那樣靜靜地躺著摧冀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上索昂,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天建车,我揣著相機與錄音,去河邊找鬼椒惨。 笑死缤至,一個胖子當著我的面吹牛,可吹牛的內容都是我干的康谆。 我是一名探鬼主播领斥,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沃暗!你這毒婦竟也來了月洛?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤孽锥,失蹤者是張志新(化名)和其女友劉穎嚼黔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惜辑,經...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡唬涧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了盛撑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碎节。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抵卫,靈堂內的尸體忽然破棺而出狮荔,到底是詐尸還是另有隱情,我是刑警寧澤陌僵,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站创坞,受9級特大地震影響碗短,放射性物質發(fā)生泄漏。R本人自食惡果不足惜题涨,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一偎谁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧纲堵,春花似錦巡雨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春正蛙,著一層夾襖步出監(jiān)牢的瞬間督弓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工乒验, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留愚隧,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓锻全,卻偏偏與公主長得像狂塘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鳄厌,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案荞胡? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,759評論 1 92
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font部翘,text-align硝训,li...
    wzhiq896閱讀 1,759評論 0 2
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,062評論 0 1
  • 1.塊級元素和行內元素 塊級(block-level)元素;行內(內聯(lián)新思、inline-level)元素窖梁。 塊元素的...
    饑人谷_小侯閱讀 2,014評論 1 4
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font夹囚,text-align纵刘,li...
    love2013閱讀 2,316評論 0 11