line-height與vertical-align:簡單的屬性不簡單

學(xué)習(xí)過CSS肯定對line-height與vertical-align兩個(gè)屬性有印象硼补;line-height用來設(shè)置行高驮肉,vertical-align用來設(shè)置文本垂直方向的對齊方式,兩種看似十分簡單已骇,但是其應(yīng)用及原理卻不簡單

line-height

line-height與內(nèi)容

先思考個(gè)問題:默認(rèn)的div元素高度為0离钝,為什么添加了文字之后,高度就有了褪储?這個(gè)高度是由哪個(gè)屬性決定的卵渴?如果是span元素,高度又是又誰決定的呢乱豆?

image

如上圖所示奖恰,結(jié)果應(yīng)該很明確了:影響div元素高度的是line-height屬性,影響span元素高度的是font-size屬性宛裕,更準(zhǔn)確的說法應(yīng)該是line-height決定塊狀元素的內(nèi)容區(qū)域高度瑟啃,而font-size影響行內(nèi)元素的文本區(qū)域高度,這里請記住內(nèi)容區(qū)域與文本區(qū)域不是同一個(gè)概念揩尸。

line-height與x

我們這里的x就是26個(gè)英文字母中的x蛹屿。由于自身形態(tài)的一些特殊性,這個(gè)小小的不起眼的字母在CSS中是一個(gè)很重要的概念岩榆。
如基線base-line的定義就是:

字母x 的下邊緣(線)就是我們的基線错负。

vertical-align中的middle指的就是:

關(guān)于基線向上1/2的x高度對齊

而x的高度甚至作為一個(gè)尺寸單位,這個(gè)單位就是ex勇边,就是指小寫字母x的高度犹撒。

veritcal-align

veritcal-align屬性值

張鑫旭在《CSS世界》中一書中,將veritcal-align屬性值分為4類:

  • 線類粒褒,如baseline(默認(rèn)值)识颊、top、middle奕坟、bottom祥款;
  • 文本類,如text-top月杉、text-bottom刃跛;
  • 上標(biāo)下標(biāo)類,如sub苛萎、super桨昙;
  • 數(shù)值百分比類,如20px腌歉、2em蛙酪、20%等。

這種劃分方法是根據(jù)屬性值的類型來劃分的究履,實(shí)際使用中感覺這樣的劃分方法不夠合理滤否,如線類中的baseline、middle是受到元素font-size影響最仑,而top藐俺、bottom卻是受到元素line-height影響;也就是說baseline泥彤、middle是子元素文本區(qū)域與父元素文本區(qū)域?qū)R欲芹,top、bottom是子元素內(nèi)容區(qū)域與父元素內(nèi)容區(qū)域?qū)R吟吝,不同的veritcal-align屬性值菱父,影響其對齊效果的屬性都是不同的。

middle屬性值不受line-height影響
top屬性值會(huì)被line-height影響

上圖顯示的是改變子元素line-height(內(nèi)容區(qū)域)對對齊的影響,此外根據(jù)veritcal-align屬性值不同浙宜,子元素的內(nèi)容區(qū)域官辽、文本區(qū)域,父元素的內(nèi)容區(qū)域粟瞬、文本區(qū)域都會(huì)對對齊造成影響同仆,設(shè)置百分比或相對尺寸更是會(huì)與font-size與line-height兩個(gè)屬性產(chǎn)生直接聯(lián)系,可見簡單的vertical-align想要合理使用并不是那么簡單的裙品。

內(nèi)容區(qū)域與文本區(qū)域

理解和正確使用line-height與vertical-align俗批,首先要明確內(nèi)容區(qū)域與文本區(qū)域的概念:

image

在一般情況下,可以認(rèn)為font-size影響span市怎,span內(nèi)容大小即為文本區(qū)域岁忘,line-height影響div,div的內(nèi)容大小即為內(nèi)容區(qū)域区匠。這里要注意影響并不是簡單的font-size或line-height數(shù)值就決定區(qū)域的高度干像。

image

如上圖div元素的實(shí)際高度是43而不是40,這是因?yàn)閐iv中的文本存在一個(gè)為ling-height值40px的內(nèi)容區(qū)域辱志,而span也存在一個(gè)ling-height值40px的內(nèi)容區(qū)域蝠筑,這兩個(gè)內(nèi)容區(qū)域高度相等,但是vertical-align默認(rèn)值為baseline揩懒,所以兩者之間是關(guān)于文本區(qū)域?qū)R的什乙,文本區(qū)域兩者大小是不同的,即baselin所在位置不同已球,連接兩個(gè)高度相同矩形臣镣,接口不在同一個(gè)位置,自然兩者就無法對齊智亮,父元素要包含這兩個(gè)元素忆某,高度也就不可能只有40px。div包含圖片阔蛉,底部出現(xiàn)空白也是因?yàn)檫@個(gè)原因了弃舒,圖片的底部就是baseline,div中存在幽靈節(jié)點(diǎn)状原,兩者基于baseline對齊造成了底部空白聋呢。

CSS中許多奇怪的現(xiàn)象都可以從概念的角度合理的去解釋,在初步學(xué)習(xí)CSS的使用之后颠区,進(jìn)一步理解學(xué)習(xí)CSS的概念是非常有必要的削锰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市毕莱,隨后出現(xiàn)的幾起案子器贩,更是在濱河造成了極大的恐慌颅夺,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛹稍,死亡現(xiàn)場離奇詭異吧黄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)稳摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門稚字,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饲宿,“玉大人厦酬,你說我怎么就攤上這事√毕耄” “怎么了仗阅?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長国夜。 經(jīng)常有香客問我减噪,道長,這世上最難降的妖魔是什么车吹? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任筹裕,我火速辦了婚禮,結(jié)果婚禮上窄驹,老公的妹妹穿的比我還像新娘朝卒。我一直安慰自己,他們只是感情好乐埠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布抗斤。 她就那樣靜靜地躺著,像睡著了一般丈咐。 火紅的嫁衣襯著肌膚如雪瑞眼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天棵逊,我揣著相機(jī)與錄音伤疙,去河邊找鬼。 笑死辆影,一個(gè)胖子當(dāng)著我的面吹牛徒像,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秸歧,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼厨姚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了键菱?” 一聲冷哼從身側(cè)響起谬墙,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤今布,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拭抬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體部默,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年造虎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了傅蹂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡算凿,死狀恐怖份蝴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氓轰,我是刑警寧澤婚夫,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站署鸡,受9級特大地震影響案糙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜靴庆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一时捌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炉抒,春花似錦奢讨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛤奥,卻和暖如春佳镜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凡桥。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工蟀伸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缅刽。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓啊掏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衰猛。 傳聞我的和親對象是個(gè)殘疾皇子迟蜜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評論 1 92
  • 參考文章:深入了解CSS的line-height屬性Vertical-Align: 你需要知道的所有事【譯】Ver...
    若邪Y閱讀 3,437評論 1 6
  • 1. 前言 前端圈有個(gè)“狗仁。”:在面試時(shí)娜睛,問個(gè)css的position屬性能刷掉一半人髓霞,其中不乏工作四五年的同學(xué)。在...
    YjWorld閱讀 4,440評論 5 15
  • ?我和我表妹如是兩人,在上海待了四天障斋。從一開始的斗志昂揚(yáng)纵潦,到后來的疲累,上海用炙烤般的溫度迎接我們垃环。除了第一天下了...
    圓形斑禿閱讀 274評論 0 2