line-height和vertical-align的關(guān)系(一)

說(shuō)在前面:最近在學(xué)習(xí)張?chǎng)涡翊笊竦摹禼ss行高line-height的一些深入理解及應(yīng)用》和《CSS深入理解vertical-align和line-height的基友關(guān)系》這兩篇文章的時(shí)候遇到一些問(wèn)題,困擾了很久,如果有遇到相同問(wèn)題的,希望本文對(duì)你有所幫助,如果有理解錯(cuò)誤,還請(qǐng)指出!更多內(nèi)容還請(qǐng)看,以上兩篇文章,比我講的更詳細(xì),這里只分享自己的一些理解。

一、問(wèn)題:

? div盒子(其他元素同)在未設(shè)定高度的時(shí)候,高度由內(nèi)容的高度撐開(kāi)。好像這句話沒(méi)什么問(wèn)題,就像下面一樣:

01.png
   * {
         margin: 0;
         padding: 0;
     }
div {
         width: 200px;
         border: 1px solid;
         margin: 50px auto;  
     }
img {
       width: 100px;
    }
<div>
     <img src="/Pictures/Saved Pictures/路飛.jpg" alt="">
</div>

? 但細(xì)心的你一定發(fā)現(xiàn),為什么圖片的底部邊緣怎么沒(méi)有和div的底部邊挨在一起,不是說(shuō)div的高度在未設(shè)定的情況下,高度由內(nèi)容的高度撐開(kāi)嘛?

02.png

? 首先這句話沒(méi)有錯(cuò),但為什么會(huì)有這個(gè)問(wèn)題呢?

? 這里就和vertical-align有關(guān)系了,圖片(行內(nèi)塊元素同)默認(rèn)和文字的對(duì)齊方式baseline,也就是說(shuō)圖片是基于基線對(duì)齊,那基線時(shí)什么呢?這里就又和line-height又有關(guān)了。

? 這里直接用大神的話:

“行高”顧名思意指一行文字的高度。具體來(lái)說(shuō)是指兩行文字間基線之間的距離。基線實(shí)在英文字母中用到的一個(gè)概念,我們剛學(xué)英語(yǔ)的時(shí)使用的那個(gè)英語(yǔ)本子每行有四條線,其中底部第二條線就是基線,是a,c,z,x等字母的底邊線。下圖的紅色線即為基線。

base_line.jpg

? 如果對(duì)于行高有一定理解的你會(huì)問(wèn),在div盒子里面沒(méi)有文字,怎么會(huì)和文字的基線對(duì)齊呢?這里可以理解為了讓圖片和文字對(duì)齊,在圖片(行內(nèi)塊)前后有個(gè)透明字符存在且寬度為0,不占位置,方便的圖片(行內(nèi)塊)在垂直方向的對(duì)齊,為了方便理解我們可以自己加一個(gè)真實(shí)的字符,情況也是相同的,請(qǐng)看:

03.png

? 所以這里 div的高度 = 內(nèi)容的高度 = 圖片的高度 + 透明字符的高度,但這個(gè)等式不嚴(yán)謹(jǐn),不是完全相等,還請(qǐng)看下面。

二、多出來(lái)的高度是什么?

? 盒子的高度是怎么來(lái)的呢?

? 答;盒子的高度是由所有行框高度累加起來(lái)的。

04.png

? 注意:文本框內(nèi)的線與線的距離畫的不是很嚴(yán)謹(jǐn)

這里還要解決兩個(gè)問(wèn)題:什么是行內(nèi)框?什么行框?

行內(nèi)框:

1.行內(nèi)元素寬高組成的框或者行內(nèi)塊寬高形成的框;

2.行內(nèi)元素的行內(nèi)框的高度等于line-height

3.行內(nèi)塊的行內(nèi)框的高度等于圖片的高度 + padding + border

行框:

1.由所有的行內(nèi)框組成的;

2.==行框的高度最高的行內(nèi)框頂部 到 最低行內(nèi)框的底部之間的距離==

那么我們現(xiàn)在就可以很清楚的知道,下面多出來(lái)高度的部分其實(shí)是 基線文本行框距離。

05.png

三、怎么解決這個(gè)問(wèn)題?

? 知道多出來(lái)的部分高度是什么就很好解決了。

? 在還是圖片(行內(nèi)塊)默認(rèn)vertical-align:baseline情況下,我們可以讓文本行內(nèi)框的行高足夠小,至少要使行高小于等于中線到基線的距離(文本默認(rèn)在文本行內(nèi)框中垂直居中),這樣文本行內(nèi)框的底部與基線重合或者在基線之上。在文本的基線和它的行內(nèi)文本框底部重合的時(shí)候,最低的行內(nèi)框是 圖片文本框(和文本的基線對(duì)齊) 和 文本行內(nèi)框;文本的行內(nèi)框的底部在基線之上時(shí),最低的就是圖片文本框了。這兩種情況下外面div的高度就和圖片的高度相等了。

寫成代碼的話可以:

1.直接控制line-height的值,line-height=0 ;

06.png
* {
            margin: 0;
            padding: 0;
        }
        div {
            width: 200px;
            border: 1px solid;
            margin: 50px auto;
            line-height: 0;
            
        }
        img {
            width: 100px;
        }
<div>
        <img src="Pictures/Saved Pictures/路飛.jpg" alt="">
        <span>x</span>
    </div>

2.間接控制line-height行高等于0,可以讓font-size = 0 。


07.png
 * {
            margin: 0;
            padding: 0;
        }
        div {
            width: 200px;
            border: 1px solid;
            margin: 50px auto;
            /* line-height: 0; */
            font-size: 0;
            
        }
        img {
            width: 100px;
        }
<div>
        <img src="Pictures/Saved Pictures/路飛.jpg" alt="">       
        <span>x</span>
    </div>

四、其他方法

? 在理解多余出來(lái)的高度是怎么來(lái)的之后,我們還可以用其他方法來(lái)去掉這個(gè)多余的高度,使圖片(行內(nèi)塊)不基于baseline對(duì)齊就好了,比如top、middle、bottom等等,或者解決改變圖片的(行內(nèi)塊)的顯示模式為block。

五 、待續(xù)

? 迷迷糊糊,說(shuō)了自己的一些理解,有的問(wèn)題還沒(méi)講到,只能待有空了再補(bǔ)上??

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,882評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,208評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 175,746評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 62,666評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,477評(píng)論 6 407
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 54,960評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,047評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 42,200評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,726評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,617評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,807評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,327評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,049評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 34,425評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 35,674評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,432評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,769評(píng)論 2 372

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

  • 參考文章:深入了解CSS的line-height屬性Vertical-Align: 你需要知道的所有事【譯】Ver...
    若邪Y閱讀 3,474評(píng)論 1 6
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,774評(píng)論 1 92
  • vertical-align 先看一個(gè)例子 baseline(默認(rèn)值)基線,盒子的基線大約在其內(nèi)部文字(匿名)盒子...
    吳立寧閱讀 2,540評(píng)論 0 4
  • 基本框 CSS假定每個(gè)元素都會(huì)生成一個(gè)或多個(gè)矩形框,這稱為元素框。各元素框中心有一個(gè)內(nèi)容區(qū)(content are...
    exialym閱讀 778評(píng)論 0 2
  • 有些東西我們經(jīng)常用,但是我們卻并不了解它的原理,所以一旦換了場(chǎng)景,好多東西就不知道該怎么用了。最近一直很糾結(jié)ver...
    朱小維閱讀 4,972評(píng)論 8 34