CSS行高line-height的個人理解
發(fā)布時間:2014-01-08 17:25:17 作者:佚名
我要評論
“行高“顧名思義指一行文子的高度,大家對CSS行高line-height都有自己的理解,下面為大家介紹下本人自己的理解
一、行高的字面意思
“行高“顧名思義指一行文子的高度。具體來說是指兩行文子間基線間的距離。
基線是在英文字母中用到的一個概念,我們剛學英語的時候使用到的那個英語本子每行有4條線,其中底部第二條線就是基線,是a,c,z,x等字母的地邊線。
————————頂線(top line)————————————————
——————————中線(middle line)————————————
————————————基線(base line)———————————
———————————————底線(bottom line)——————
vertical-align中有top,middle,baseline,bottom與之是有關聯(lián)的,但是具體細節(jié)如何,瀏覽器差異怎樣,我還是不是很清楚。
但是由于中午跟英文長得不一樣,所以基線的說法就像老太太穿線一一對不上眼。你理解為底線之差也不為不可。只是定義一回事,表現(xiàn)則另一回事。
二、line-height與line boxes高度
先說一個大家熟知的現(xiàn)象,有一個空的div,<div></div>,如果沒有設置至少大于1像素高度height值時,該div的高度就是個0.如果該div里面打入了一個空格或是一個漢字 ,則此div就會有一個高度。那么您有沒有思考過,為什么div里面有文字后就會有高度呢?
這是個看上去很簡單的問題,是理解line-height非常重要的一個問題??赡苡腥藭J為是:文子撐開的!文子占據(jù)空間,自然將div撐開。我一開始也是這樣理解的,但是事實上,深入理解inline模型后,我發(fā)現(xiàn),根本不是文字撐開了div的高度,而是line-height!喲證明很簡單(如下測試代碼):
css代碼:
<!-- lang: css -->
.test1{font-size:20px; line-height:0; border:1px solid #cccccc; backgroud:#eeeeee;}
<!-- lang: css -->
.teset2{fon-size:0; line-height:20px; border:1px solid #cccccc; backgroud:#eeeeee;}
html代碼:
<!-- lang: html -->
<div class="test1">測試1</div>
<!-- lang: html -->
<div class="test2">測試2</div>
結果:test1 div有文字大小,但是行高為0,結果div的高度就是個0;test2 div文字大小為0,但是有行高,為20像素,結果div高度就是20像素。這就說明撐開div高度的是line-height不是文字內(nèi)容。
到底這個line-height行高怎么就產(chǎn)生了高度呢?在linline box模型中,有個line boxes,這個是看不見的。line boxes的工作就是包裹每行文字。一行文字一個 line boxes。例如”艾佛森退役"這5個字,如果它們在一行顯示,你艾佛森再牛,對不起,只有一個line boxes罩著你;但是”春哥純爺們“這5個字,要是豎著寫,一行一個,那真是夠爺們,一個字罩著一個line boxes,于是總計5個line boxes。line boxes什么特性也沒有,就是高度。所以一個沒有設置height屬性的div的高度就是由一個line boxes的高度堆積而成的。
其實line boxes不是直接的生產(chǎn)者,屬于中層干部,真正的活兒都是它的手下-inline boxes干的,這些手下就是文字啦,圖片啦,span之類的inline屬性的標簽啦。line boxes只是個考察匯報人員,考察它的手下誰的實際line-height值最高,誰最高,它就要誰的值,然后向上匯報,形成高度。例如,<span style="line-height:20px;">取手下line-height<span style="line-height:40px;">最高</span>的值</span>.則line boxes的高度就是40像素了。
“行高“顧名思義指一行文子的高度。具體來說是指兩行文子間基線間的距離。
基線是在英文字母中用到的一個概念,我們剛學英語的時候使用到的那個英語本子每行有4條線,其中底部第二條線就是基線,是a,c,z,x等字母的地邊線。
————————頂線(top line)————————————————
——————————中線(middle line)————————————
————————————基線(base line)———————————
———————————————底線(bottom line)——————
vertical-align中有top,middle,baseline,bottom與之是有關聯(lián)的,但是具體細節(jié)如何,瀏覽器差異怎樣,我還是不是很清楚。
但是由于中午跟英文長得不一樣,所以基線的說法就像老太太穿線一一對不上眼。你理解為底線之差也不為不可。只是定義一回事,表現(xiàn)則另一回事。
二、line-height與line boxes高度
先說一個大家熟知的現(xiàn)象,有一個空的div,<div></div>,如果沒有設置至少大于1像素高度height值時,該div的高度就是個0.如果該div里面打入了一個空格或是一個漢字 ,則此div就會有一個高度。那么您有沒有思考過,為什么div里面有文字后就會有高度呢?
這是個看上去很簡單的問題,是理解line-height非常重要的一個問題??赡苡腥藭J為是:文子撐開的!文子占據(jù)空間,自然將div撐開。我一開始也是這樣理解的,但是事實上,深入理解inline模型后,我發(fā)現(xiàn),根本不是文字撐開了div的高度,而是line-height!喲證明很簡單(如下測試代碼):
css代碼:
復制代碼
代碼如下:<!-- lang: css -->
.test1{font-size:20px; line-height:0; border:1px solid #cccccc; backgroud:#eeeeee;}
<!-- lang: css -->
.teset2{fon-size:0; line-height:20px; border:1px solid #cccccc; backgroud:#eeeeee;}
html代碼:
復制代碼
代碼如下:<!-- lang: html -->
<div class="test1">測試1</div>
<!-- lang: html -->
<div class="test2">測試2</div>
結果:test1 div有文字大小,但是行高為0,結果div的高度就是個0;test2 div文字大小為0,但是有行高,為20像素,結果div高度就是20像素。這就說明撐開div高度的是line-height不是文字內(nèi)容。
到底這個line-height行高怎么就產(chǎn)生了高度呢?在linline box模型中,有個line boxes,這個是看不見的。line boxes的工作就是包裹每行文字。一行文字一個 line boxes。例如”艾佛森退役"這5個字,如果它們在一行顯示,你艾佛森再牛,對不起,只有一個line boxes罩著你;但是”春哥純爺們“這5個字,要是豎著寫,一行一個,那真是夠爺們,一個字罩著一個line boxes,于是總計5個line boxes。line boxes什么特性也沒有,就是高度。所以一個沒有設置height屬性的div的高度就是由一個line boxes的高度堆積而成的。
其實line boxes不是直接的生產(chǎn)者,屬于中層干部,真正的活兒都是它的手下-inline boxes干的,這些手下就是文字啦,圖片啦,span之類的inline屬性的標簽啦。line boxes只是個考察匯報人員,考察它的手下誰的實際line-height值最高,誰最高,它就要誰的值,然后向上匯報,形成高度。例如,<span style="line-height:20px;">取手下line-height<span style="line-height:40px;">最高</span>的值</span>.則line boxes的高度就是40像素了。
相關文章
深入理解CSS行高line-height與文本垂直居中的原理
本文詳細介紹了CSS行高屬性line-height與文本垂直居中的原理,通過本文的介紹相信對大家以后使用line-height和設置文本垂直居中會更加熟練,有需要的可以參考借鑒。下面一2016-08-12- 下面小編就為大家?guī)硪黄媪私鈉ss行高line-height的用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-25
- line-height對于頁面中字體的行距等排版方面的效果至關重要,這里為大家整理了CSS中的line-height行高屬性學習教程,包括line-height的各種取值設定等方面,需要的朋友可以參2016-06-06
- 這篇文章主要介紹了CSS中的line-height屬性的使用技巧,文中同時給出了line-height使用中經(jīng)常出現(xiàn)的文字重疊問題的解決方法,需要的朋友可以參考下2016-02-02
- 這篇文章主要介紹了CSS中行高line-height屬性的一些使用技巧,包括為每行文本指定不同顏色和文本中間添加線時用到的一些操作方法,需要的朋友可以參考下2015-08-21
- 本文介紹下css中的line-height屬性的用法,通過實例學習css line-height屬性的具體用法,感興趣的朋友參考下2014-08-02
- 我們在css編寫中需要對大篇幅的內(nèi)容顯示的更好看,有些間隔,不要在擠在一起難看,就可以使用Line-Height屬性進行控制2013-07-20

關于css中l(wèi)ine-height(行高)設置無效的問題的解決方法
這篇文章主要介紹了關于css中l(wèi)ine-height(行高)設置無效的問題的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-29


