[CSS學習] line-height屬性講解


記:本文可以作為張老師在慕課網上講解課程的學習筆記

定義

line-height:通過查MDN文檔可知

對於塊級元素,CSS屬性line-height指定了元素內部line-boxes的最小高度。對於非替代行內元素,line-height用於計算line box的高度。對於替代行內元素,如button/input等元素,line-height並沒有影響。

查CSS參考手冊,line-height表示字體最底端與字體內部頂端之間的距離,應該是不准確的。

張老師說:line-height表示兩條基線之間的距離

通過MDN的定義可以知道,內聯元素的高度是由line-height決定的,並不是由字體大小決定的。

 

高度機理

1. 行高line-height具有繼承性,影響無處不在。

2. 高度的表現並不在於行高,而是在於內容區域和行間距。

內容區域高度+行間距=行高

內容區域高度只與字體和字號有關系

 

取值

line-height的取值有四種類型:normal  <number>  <length>  <percentage>

normal取決於user-agent,與font-family有關系。一般情況下都會在reset.css里面重置line-height

<number>無單位數字,實際計算值=number*字體大小,首選方法。

<length>用於計算line box的高度

<percentage>與元素自身的字體大小有關,實際計算值=percentage*元素計算出的字體大小

inherit行高繼承,input等元素默認行高值為normal, 通過使用inherit可以讓文本框樣式的可控性更強

細微差別

line-height=<number>所有可繼承元素根據font-size重新計算行高

line-height=<percentage>/<length>當前元素根據font-size計算行高后繼承給子元素

 

line-height與圖片的那些事兒

如果消除圖片底部間隙的方法:

1. 圖片塊狀化,這樣就沒有基線對齊

2. 圖片設置底線對齊,默認圖片和文字是基線對齊baseline

3. 設置足夠小的行高使得基線位置上移 line-height: 0;

應用:

1. 小圖片,大文字(圖片和文字中線對齊)

保留圖片的inline特性,設置文字的字體大小及行高,同時設置圖片的vertical-align特性來實現某些效果

如img{vertical-align: bottom;}圖片和文字保持底部對齊

img{vertical-align: middle;}圖片和文字保持中線對齊

 

2. 大小不固定的圖片,多行文字垂直居中

a. 圖片的水平居中:

圖片外部容器設置 {line-height: <length>; text-align:center; }

img{ vertical-align:middle;} 圖片近視居中,細微之處在於,有隱藏的文本,所以偏差與字體和字號有關。

 

b. 多行文本水平垂直居中

設置外部容器{ line-height, text-align:center;}

內部文本標簽需要修改display轉換成和圖片一樣inline-block,同時重置外部繼承的text-align和line-height屬性值{text-align:left; vertical-align:middle;}

必要時設置max-width:100%;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM