1. 程式人生 > >設置line-height:150%和line-height:1.5的區別

設置line-height:150%和line-height:1.5的區別

效果 計算 優先 spa 簡單 style 技術 mage 大小

首先先看下line-height屬性可能的值:

技術分享圖片

簡單說可以分為帶單位的值(line-height:1.5em/line-height:150%/line-height:36px)和不帶單位的值(line-height:1.5)

下面分別演示兩者的區別:

一. 設置帶單位的,後代元素會繼承父元素計算後的值,如父級行高為36px,後代元素的行高都會繼承這個值,如果是“%或者em” 父級優先於font-size相乘得到這個數值,後代元素在繼承這個數值,例如:

<div style="line-height:150%;font-size:16px;background-colo:yellow;margin:0;">
 <span>第一行</span>
 <p style="margin:0;font-size:36px;">第二行</p>
</div>

  效果如圖:

技術分享圖片

此時的第一行的行高是:16px*150%=24px,而第二行的行高是繼承父元素的值,所以行高為24px。可以看到如果子元素的字體大小大於父元素,就會出現錯位等問題。 二.設置不帶單位的,那它就是個“縮放因子”,後代元素會繼承這個縮放因子進行計算,而不是繼承父元素計算後的值繼承,例如:
<div style="line-height:1.5;font-size:16px;background-colo:yellow;margin:0;">
 <span>第一行</span>
 <p style="margin:0;font-size:36px;">第二行</p>
</div>

  效果如下:

技術分享圖片

這時的第一行行高為:16px*1.5=24px,而第二行的行高先繼承了縮放因子再進行計算,行高為:36px*1.5=54px 總結:從效果圖可以看出來,line-height帶了單位會出現一些錯位等問題。當不帶單位時,實際子元素真正的行距是分別與自身元素字號相乘的計算結果,推薦使用可以避免一些意外的繼承問題。

設置line-height:150%和line-height:1.5的區別