一不小心瞭解了行間距的真相.

衆所周知的一個垂直居中實現方式(其他的暫不討論)..
高度給定的元素, 其內部單行文本垂直居中的一種實現方式爲: 給當前定高元素, 設置line-height屬性, 其屬性值等於當前元素的height值.

今天瞭解到了一條相關知識, 明白這個方法的實現原理.
我們常說的單倍行距, 雙倍行距等等, 主觀上認爲是line-height設置的值, 如果量一下實際的效果, 會發現, 兩行文本的間距, 並非等於line-height的值.

line-height.png

2012-1-2 14:53:39 上傳
下載附件 (6.37 KB)


瀏覽器計算和分配行間距的方法
間距 = "line-height" – "font-size";
文本上下分配大小 = 間距/2;
字號 = 12px; line-height:3;
間距 = 3*12 – 12 = 24(px);
文本上下分配大小 = 24/2 = 12(px)

邏輯上如此無懈可擊~ o.0


小知識點(個人認爲, 應該這樣)
"line-height的值, 推薦使用數字而非帶有單位的值, 如, 推薦使用line-height:2; 不推薦使用line-height:24px;"
原因在於, line-height:24px;是一個固定的值, 對於任何大小的文本, 都採用這個值來計算行間距. 若文本的字號過大, 會出現重疊的問題. 不帶單位的值表示倍數. 自然避免了該問題.
看下邊的例子
  1. <!doctype html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <style type="text/css">
  6.                 div{
  7.                         font-size:30px;
  8.                         font-family:Consolas,Microsoft Yahei,SimSun;
  9.                         margin:10px 10px 0px 10px;
  10.                         padding:10px;
  11.                 }
  12.                 #demo_1{
  13.                         background:#EEE;
  14.                         border:solid 1px #CCC;
  15.                         line-height:12px;
  16.                 }
  17.                 #demo_2{
  18.                         background:#333;
  19.                         border:solid 1px #000;
  20.                         line-height:2;color:#FFF;
  21.                 }
  22.                 </style>
  23.                 <title>Line-heighg demo</title>
  24.         </head>
  25.         <body>
  26.         <div id="demo_1">
  27.                 line-height:24px;<br />
  28.                 line-height:24px;
  29.         </div>
  30.         <div id="demo_2">
  31.                 line-height:2;<br />
  32.                 line-height:2;
  33.         </div>
  34.         </body>
  35. </html>


發佈了11 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章