首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么line-height会增加额外的高度?

为什么line-height会增加额外的高度?
EN

Stack Overflow用户
提问于 2013-07-18 20:33:34
回答 3查看 1.1K关注 0票数 1
代码语言:javascript
复制
<div><iframe style="height: 100px"></iframe></div>
<div style="line-height: 0"><iframe style="height: 100px"></iframe></div>

http://jsfiddle.net/p6SD4/

如果检查DOM,可以看到第一个div的高度为108px,而第二个div的高度为104px。带边框的iframe是104px,那么为什么在设置line-height的时候还要添加4个额外的像素呢?

已在Mac版Chrome 28.0.1500.71上测试。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-18 20:53:47

因为iframe位于基线上。但是div必须足够高,以容纳strut,它低于基线,其高度由行高度决定。

0line- height = 0px支柱高度= 0px基线以下支柱的高度。

使用iframe { display:block; }iframe { vertical-align:top; }iframe { vertical-align:bottom; }来阻止这种情况的发生。

(显示:阻止创建线框,因此没有支撑。垂直对齐:顶部和垂直对齐:底部释放支柱,使其不与iframe共享线框的基线,因此支柱放置得更高,这样它的任何部分都不会低于iframe的底部。请注意,如果行高大于iframe高度,则无论垂直对齐设置如何,支撑会强制行框高度,从而使div高度仍然大于iframe高度)

票数 3
EN

Stack Overflow用户

发布于 2013-07-18 20:42:11

在Chrome28中,这两个div似乎都是109px高。请记住,<iframe>元素和所有内联元素的缺省基线值是vertical-align -将其更改为bottom将使这两个元素对齐,这可能是您所期望的。

http://jsfiddle.net/p6SD4/1/

票数 2
EN

Stack Overflow用户

发布于 2013-07-18 20:45:46

这可能取决于您的浏览器。对于Firefox和Chrome,两个IFRAME元素的高度都是104px (100px + 4px的边框)。

您使用的是哪种浏览器?您尝试过border="0“吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17723557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档