1. 程式人生 > >CSS文字與文字樣式之文字行高line-height詳解

CSS文字與文字樣式之文字行高line-height詳解

一、基本介紹

line-height
對於代替元素,line-height沒有影響
對於非代替元素,line-height才有影響
對於塊級元素,css屬性line-height指定了元素內部line-box的最小高度
對於行內元素,line-height用於計算line-box的高度

預設值: normal 可繼承


normal
取決於使用者代理。桌面瀏覽器(包括火狐瀏覽器)使用預設值,約為1.2
<number>
該屬性的應用值是這個無單位數字<number>

乘以該元素的字型大小。計算值與指定值相同。大多數情況下,使用這種方法設定line-height是首選方法,在繼承情況下不會有異常的值。
<length>
指定<length> 用於計算 line box 的高度。
<percentage>
與元素自身的字型大小有關。計算值是給定的百分比值乘以元素計算出的字型大小。

行高繼承的注意事項:
- 父級行高使用的是百分比的話,子級繼承的是父級百分比計算過後的值;
- 父級行高使用的是number因子的話,子級直接繼承的是父級的number因子。

二、頂線、中線、基線、底線

這裡寫圖片描述
從上到下四條線分別是頂線、中線、基線、底線,很像才學英語字母時的四線三格。

三、行高、行距、半行距

這裡寫圖片描述
1.行高是指上下文字行的基線間的垂直距離,即圖中兩條紅線間垂直距離。
2.行距是指一行底線到下一行頂線的垂直距離,即第一行粉線和第二行綠線間的垂直距離。
這裡寫圖片描述
3.半行距是行距的一半,即區域3垂直距離/2,區域1,2,3,4的距離之和為行高,而區域1,2,4距離之和為字型size,所以半行距也可以這麼算:(行高-字型size)/2

四、內容區、行內框、行框

這裡寫圖片描述
1**、內容區**:底線和頂線包裹的區域,即下圖深灰色背景區域。
文字行中的每個元素都會生成一個內容區,這個由字型的大小確定。這個內容區則會生成一個行內框。
如果不存在其他因素,這個行內框就完全等於該元素的內容區,由line-height產生的行間距就是增加 和減少各行內框高度的因素之一。

2.行內框 : 行內框是一個瀏覽器渲染模型中的一個概念,無法顯示出來,行內框預設等於內容區域, 將line-height的計算值減去font-size的計算值,這個值就是總行距,這個值可能是個負值,任何將行間距/2 分別應用到內容區的頂部和底部,其結果就是該元素的行內框。
3.行框(line box),行框是指本行的一個虛擬的矩形框,是瀏覽器渲染模式中的一個概念,並沒有實際顯示。預設情況下行框高度等於本行內所有元素中行內框最大的值(一行上垂直對齊時以行高值最大的行內框為基準,其他行內框採用自己的對齊方式向基準對齊,最終計算行框的高度),當有多行內容時,每行都會有自己的行框。

這裡寫圖片描述