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

众所周知的一个垂直居中实现方式(其他的暂不讨论)..
高度给定的元素, 其内部单行文本垂直居中的一种实现方式为: 给当前定高元素, 设置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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值