line-height筆記

饑人谷_李棟


1.基線
2.行內框盒子模型
3.行內框盒子模型的應用
4.line-height屬性
5.行高的應用


line-height
兩行文字基線之間的距離

一、基線

英文四線格

英語本第三條紅線,或字母x的下邊緣
使用不同字體,基線位置不同
//微軟雅黑就正好
//arial、宋體 (simsun)偏上

行高可以使單行文本垂直居中
//看上去居中了
//只有字體大小為0的時候才絕對垂直居中 ,字體越大,文字越偏下

二、行內框盒子模型

<p>這是一行文字<em>你好<em>再見</p>

1. 內容區域 content area
//圍繞文字 與字號、字體相關
//可以理解為選中文字后的藍色背景
//宋體下 內容區域=fontsize

2. 內聯盒子 inline boxes
//從名字就可以看出什么意思
//內聯盒子:被inline標簽包裹;匿名內聯盒子:只有文字

3. 行框盒子line boxes
//每一行
//包含內聯盒子

4. 包含盒子containing box
//由行框盒子組成

三、行內框盒子模型的應用

  • 內聯元素的高度是由line-height決定的
    //line-height= 內容區域+行間距

  • 內聯元素內包含多個不同行高的元素
    高度不等于最大的行高

  • 行半間距
    //行間距/2
    //可負值---文字重疊的時候

四、 line-height屬性

  • normal
  • 數字 //數字*fontsize
  • 長度值//em px
  • 百分比//百分比*fontsize
  • 繼承
    //input的行高默認是normal設置成inherit可控性更好
    //數字的話 所有元素都會重新計算行高
    //百分比和em 父容器重新計算 其結果所有元素共用

五、行高的應用

  • body里面的行高設置
    blog類重閱讀的至少1.5、1.6
    正常網頁匹配20px line-height=20/14=1.42857 無限接近20
    但是, chrome向下取值=19px 所以我們要取1.4286

  • 行高與圖片

<p><img src=...></p>

我們會發現 圖片與p底部有一段間隙
//行高不會影響圖片實際占據的高度

這是因為inline元素默認是基線對齊的 vertical-align=baseline
改變行高之后圖片的位置也變了
是vertical-align和行高共同影響的結果
那為什么沒文字也有空隙類

  • 隱匿文本節點
    //故名思意

  • 怎么消除間隙
    塊狀化 display:block
    底線對齊 vertical:bottom
    行高夠小 line-height:0;

  • 圖片水平垂直居中

外層容器設置行高text-align:center 圖片vertical-align:middle//近似做到垂直居中//ie8以下不兼容

  • 如果圖片小文字大的話

可以調 行高進行設置//非ie6 圖片由vertical-align設置

  • 多行文字水平居中

除了上面的設置外 需要改變他的基線對齊方式(垂直)+行高繼承+文本對齊(水平)//兼容問題

  • 避免 ie6、ie7下height的haslayout

//沖破父容器的自適應束縛(inline-block、float) 把父容器撐滿

可以用行高代替height

  • ps:不要再css里面設置{height:20px;line-height:20px;}
    //因為你不設height也可以達到同樣效果

因為課上看到相關問題,所以寫了來自張鑫旭的視頻筆記,供以后參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • line-height 與行內框盒子模型 line-height 表示兩行基線之間的距離。 所有內聯元素的樣式表現...
    soojade閱讀 569評論 0 0
  • 參考文章:深入了解CSS的line-height屬性Vertical-Align: 你需要知道的所有事【譯】Ver...
    若邪Y閱讀 3,486評論 1 6
  • 有些東西我們經常用,但是我們卻并不了解它的原理,所以一旦換了場景,好多東西就不知道該怎么用了。最近一直很糾結ver...
    朱小維閱讀 4,986評論 8 34
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,786評論 1 92
  • 1,行高的定義 行高是指行間的距離,也就是基線之間的距離,而只有兩行文字才會存在兩個基線,那么為什么單行文字還具有...
    Bennt閱讀 1,665評論 2 7