CSS3小技巧-在div中iframe出现滚动条问题
前言
父元素.parent 设定了高度,设置 iframe height:100%,通过浏览器观察发现,外层 div 与 iframe 高度相同,为什么出现滚动条,发现没有 padding/margin 的影响。
1 | <div class="parent"> |
解决方法
简单来说,iframe=inline frame 它是一个内联元素,默认是 baseline 对齐的,iframe 后边有个看不见、摸不着的行内空白节点, 空白节点占据着高度,iframe 与空白节点的基线对齐,导致了 div 被撑开,从而出现滚动条。 找到原因了,解决方案也就简单了。
- 第一种,设置 iframe 的 vertical-align:top
- 第二种,设置父 div 的 font-size:0,从而影响空白节点的 line-height 是 0,从而不占据高度。
- 第三种,改变 iframe 的内联元素性质,改为块级元素,display:block
最后发现是 vertical-align:baseline 导致的,改为 top 后正常,但是在 IE110 中仍旧存在问题 经尝试 vertical-align:text-top(text-bottom)可以保证兼容性