css - 再遇 vertical-align

1. vertical-align 屬性值概覽

vertical-align 僅對(duì)行內(nèi)元素(inline-block、inline)生效茅撞,塊元素?zé)o效,他是確定子元素的基線相對(duì)于父元素基線的位置(垂直方向上的對(duì)齊方式)巨朦,其屬性值有:

  1. baseline
  2. top
  3. bottom
  4. text-top
  5. text-bottom
  6. middle
  7. sub
  8. super
  9. 數(shù)字

2. 準(zhǔn)備

2.1 字體度量

字體度量.png

首先米丘,我們先了解一下字體度量,如上圖所示糊啡。圖中小寫(xiě)字母 x 的底部為 baseline, x 的高度為 x-height拄查,ascender與大寫(xiě)字母的頂部有一定的間距,descender與小寫(xiě)字母 p, y 的底部對(duì)齊棚蓄,這些設(shè)置與字體的設(shè)置有關(guān)堕扶,具體的需要去了解字體是怎么做出來(lái)的,理解 vertical-align 的各個(gè)屬性的基礎(chǔ)是需要知道這些線的位置梭依。

2.2 line-box

每一行稱為一條Line Box稍算,它又是由這一行的許多inline-box組成,它的高度可以直接由line-height決定役拴,line boxes的高度垂直堆疊形成了containing box的高度糊探,就是我們見(jiàn)到的div或是p標(biāo)簽之類(lèi)的高度了。

3. vertical-align 各個(gè)屬性的表現(xiàn)一覽

下圖中第一排為文字內(nèi)容的表現(xiàn)河闰,第二排為圖片的表現(xiàn)科平,如果這個(gè)圖讓你一眼就看明白了各個(gè)屬性的具體表現(xiàn),那么后續(xù)的內(nèi)容均可忽略姜性。黑色的外框是父元素內(nèi)容區(qū)域的邊界因?yàn)闆](méi)有設(shè)置 margin 和 padding匠抗,這個(gè)邊界也是line-box的邊界。

下圖中各個(gè)顏色的線的意義(從上到下數(shù)):

  • 藍(lán)色線(第一條)- ascender
  • 綠色線(第二條)- x-height
  • 紅色線(第三條)- middle
  • 橙色線(第四條)- baseline
  • 灰色線(第五條)- descender
vertical-align 各個(gè)屬性的表現(xiàn)一覽.png

4. vertical-align 各個(gè)屬性詳述

在父元素中寫(xiě)入 Xxjpf 作為參考污抬,并在此基礎(chǔ)上畫(huà)出5條參考線汞贸,父元素的 baseline 是 x 的底部的線條

4.1 baseline

對(duì)齊位置:子元素的 baseline 與父元素 baseline 對(duì)齊,即子元素中 x 的底部與父元素中 x 的底部對(duì)齊印机,圖片元素的 baseline 以及有寬度和高度的空盒子的baseline均為盒子底部矢腻。

如圖:

baseline.png
圖片-baseline.png

4.2 sub

對(duì)齊位置:子元素的 baseline(字母x 的底部)與父元素文字的 descender (灰線)對(duì)齊

如圖:

sub.png
圖片-sub.png

4.3 super

對(duì)齊位置:子元素的 baseline(字母x 的底部)與父元素文字的 x-height (綠線)對(duì)齊

如圖:

super.png
圖片-super.png

4.4 top

對(duì)齊位置:子元素盒模型的頂部,與 line-box 的頂部對(duì)齊射赛。

如圖:

top.png
圖片-top.png

4.5 middle

對(duì)齊位置:子元素盒模型的中線位置與父元素 基線(字母x 的底部)+ 半個(gè)x的高度的位置(紅線)對(duì)齊

圖例中多柑,為了方便查看,我們?cè)谧釉氐闹虚g畫(huà)了一條白色的線楣责,可以看到這條白線是與父元素穿過(guò) x 中心的紅線對(duì)齊竣灌。圖片上的黑色的線就是圖片的中間位置(是在ps上自己畫(huà)上去的)聂沙,也可以看到該黑線與穿過(guò) x 中心的紅線對(duì)齊。同時(shí)也可以看出 middle 與 baseline 的差別初嘹,文字內(nèi)容的差距比較小及汉,但圖片可以明顯看出是不一樣的。如圖:

middle.png
圖片-middle.png

4.6 bottom

對(duì)齊位置:子元素盒模型的底部屯烦,與 line-box 的底部對(duì)齊

如圖:

bottom.png
圖片-bottom.png

4.7 text-top

對(duì)齊位置:子元素盒模型的的頂部與父元素字體的 ascender 線(藍(lán)線)對(duì)齊

如圖:

text-top.png
圖片-text-top.png

4.8 text-bottom

對(duì)齊位置:子元素盒模型的的頂部與父元素字體的 descender 線(灰線)對(duì)齊

如圖:

text-bottom
圖片-text-botton.png

4.9 數(shù)字

對(duì)齊位置:以 baseline 為中心線上下移動(dòng)指定像素量坷随,正數(shù)為向上移動(dòng),負(fù)數(shù)為向下移動(dòng)

子元素 baseline 與父元素 baseline 對(duì)齊的前提下驻龟,正數(shù)(eg:2px)代表相對(duì)于baseline 位置上移指定的像素温眉,負(fù)數(shù)(-2px)代表相對(duì)于 baseline位置 下移指定的像素

5. 總結(jié)

vertical-align 只對(duì)行內(nèi)元素生效,

有些屬性需要找準(zhǔn)子元素的基線翁狐,如:baseline, sub, super

還有一些屬性需要確認(rèn)子元素的盒模型的范圍类溢,如:top, middle, bottom, text-top, text-bottom

屬性值 對(duì)齊位置
baseline 子元素的 baseline 與父元素 baseline 對(duì)齊
sub 子元素的 baseline 與父元素 x-heignt (綠線對(duì)齊)
super 子元素的 baseline 與父元素 descender(灰線)對(duì)齊
top 子元素盒模型頂部與父元素 line-box 頂部對(duì)齊
middle 子元素盒模型的中線與父元素 baseline + 半個(gè) x 的高度位置(紅線)對(duì)齊
bottom 子元素盒模型底部與父元素 line-box 底部對(duì)齊
text-top 子元素盒模型的頂部與父元素 ascender 線(藍(lán)線)對(duì)齊
text-bottom 子元素盒模型的底部與父元素 descender 線(灰線)對(duì)齊
數(shù)字 以 baseline 為中心線上下移動(dòng)指定像素量,正數(shù)為向上移動(dòng)露懒,負(fù)數(shù)為向下移動(dòng)

6. 思考

如果子元素的內(nèi)容有換行豌骏,如何確定baseline?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末隐锭,一起剝皮案震驚了整個(gè)濱河市窃躲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钦睡,老刑警劉巖蒂窒,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異荞怒,居然都是意外死亡洒琢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)褐桌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衰抑,“玉大人,你說(shuō)我怎么就攤上這事荧嵌∏河唬” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵啦撮,是天一觀的道長(zhǎng)谭网。 經(jīng)常有香客問(wèn)我,道長(zhǎng)赃春,這世上最難降的妖魔是什么愉择? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上锥涕,老公的妹妹穿的比我還像新娘衷戈。我一直安慰自己,他們只是感情好层坠,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布殖妇。 她就那樣靜靜地躺著,像睡著了一般窿春。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上采盒,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天旧乞,我揣著相機(jī)與錄音,去河邊找鬼磅氨。 笑死尺栖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的烦租。 我是一名探鬼主播延赌,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叉橱!你這毒婦竟也來(lái)了挫以?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤窃祝,失蹤者是張志新(化名)和其女友劉穎掐松,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粪小,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡大磺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了探膊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杠愧。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逞壁,靈堂內(nèi)的尸體忽然破棺而出流济,到底是詐尸還是另有隱情,我是刑警寧澤腌闯,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布袭灯,位于F島的核電站,受9級(jí)特大地震影響绑嘹,放射性物質(zhì)發(fā)生泄漏稽荧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姨丈。 院中可真熱鬧畅卓,春花似錦、人聲如沸蟋恬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)歼争。三九已至拜马,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沐绒,已是汗流浹背俩莽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乔遮,地道東北人扮超。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蹋肮,于是被迫代替她去往敵國(guó)和親出刷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359