javascript - 怎么解释line-heihgt值小于font-size值出现的情况?
高洛峰
高洛峰 2017-04-10 18:00:22
[JavaScript讨论组]
hello

world

span{ font-size: 100px; border: 1px solid red; line-height:10px; } p{ border:1px solid; }

代码如上,当span的font-size大于其line-height值,会出现下方的p会和span重叠了一部分,请问这个重叠部分的高度是怎么计算的?
代码:这里

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
巴扎黑

p元素作为一个块级别元素会接在其它元素后面时,会发生折行,形成自己的的块级框,这个块级框的上顶部和前一个元素的块级别框(行框)的底部对齐

问题中的span是一个行内元素,内部hello文本形成一个行框,这个行框的的line-height为10px,font-size:100px;加到文本内容区行间距为(10-100)/2=-45px;形成的效果为span hello文本将向上移动45px(相对于line-height:100px;font-size:100px),有一部份文本看不到;行框底部也相应的上移动了45px

p world将被放置相应的位置~~~~(100+(-45))==55px;

ringa_lee

我认为那个位置是基线与行框之间的差距,只要行高小于字体大小。那个位置的大小应该是取决于字体及字体大小。

p的折行是以span的行框(line box)的下边沿开始算起的。而行框的下边沿,在行高小于字体大小时,是在基线的上方。

你可以给span加上 vertical-align: top; ,会发现p 跳上去了。

时间不够,就不补图了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号