网页制作 
首页 > 网页制作 > 浏览文章

使用不带单位的line-height

(编辑:jimmy 日期: 2024/5/9 浏览:3 次 )
有的时候,我们为了实现单行文字的垂直居中,会给line-height一个和height相同的固定的值;有的时候,我们为了调整特定的某段文字的行间距,通常会考虑使用百分比或者相对尺寸的em。或许是习惯,于是我们都习惯了line-height是要有单位的。这些情况下,我们都不需要考虑line-height的继承,也不会发现任何问题。当然我们在使用line-height继承的时候,就会发现问题的所在。

例如下面的代码:

CSS:

复制代码代码如下:
<style>
.line-height-test { width: 200px; line-height: 1.4em; font-size: 12px; }
.line-height-test span { font-size: 30px; font-weight: bold; }
</style>

HTML:

复制代码代码如下:
<p class="line-height-test">
<span>白培铭先生于1960年出生于中国台湾,毕业于中国台湾省清华大学核物理系,</span>
之后留学于美国加州大学伯克利分校和密西根大学,获得双硕士学位。在工作之后,凭着对营销领域的浓厚兴趣,他又考入密执安大学深造。
</p>


如果line-height属性值有单位,那么继承的值则是换算后的一个具体的px级别的值(先计算后继承);而如果属性值没有单位,则浏览器会直接继承这个 “因子(数值)”,而非计算后的具体值,此时它的line-height会根据本身的font-size值重新计算得到新的line-height 值(先继承后计算)。

比如有一div及子元素p,div的line-height为150%,由于默认情况的字体大小为16px,所以div的具体line-height值可换算为 16px * 150% = 24px,由于p的line-height会继承24px这个换算过后的具体值,此时p又被重新定义为font- size:30px;字体大小超过了line-height的大小,于是发生重叠。其它单位原理一样。
上一篇:纯CSS打造兼容各种浏览器的几何图形打包
下一篇:CSS实现强制不换行、自动换行、强制换行的css代码
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网