iframe多级嵌套后,无论子iframe内部内容高度是否超过iframe,父级iframe都会出现滚动条的问题
2016-10-10 00:00
393 查看
最近在项目项目中发现了一个问题,其实这个问题以前碰到过多次,只是一直没有找到原因,今天特意做一下记录。
代码如下:
当我设置这些iframe height:100%的时候,第一个iframe总是会出现滚动条;
随后我发现iframe的父级容器div总是会比iframe大5px。
如果要解决问题的话,可以在父级div中设置高度,但是如果父级div还有div嵌套的话,这样层层设置就很冗余了。
随后在网上寻找解决方案,div包裹的iframe有5px的高度差问题
2016年10月13日更新:
这个问题产生的原因是什么呢?
网上说html规范导致的,如果是
这样是没问题的。
而使用html5标签
就会相差几个像素;
其实不一定就是5个像素,相差的像素取决于行内高度。
为什么这么说呢?因为上面的原因并不是导致这样问题的真正根源。
真正的原因是iframe在html5中的是一个行内样式(display: inline),虽然并没有写出来,但是表现出来的就是一个行内样式。
这也是为什么给iframe设置dispaly:block;或者vertical-align:bottom或者给外层div设置font-size:0就可以让空白空间消失了。img和外层div也有这个问题,也可以这样解决。
感谢张鑫旭大牛的文章,让我明白了这个问题。推荐他的文章:
代码如下:
<iframe id="mainFrame" name="mainFrame" src="" style="overflow:visible;" scrolling="yes" frameborder="no" width="100%" height="650"> <div id="left"> <iframe id="cmsMenuFrame" name="cmsMenuFrame" src="${ctx}/cms/tree" style="overflow:visible;" scrolling="yes" frameborder="no" width="100%"></iframe> </div> <div id="openClose" class="close"> </div> <div id="right"> <iframe id="cmsMainFrame" name="cmsMainFrame" src="${ctx}/cms/none" style="overflow:visible;"scrolling="yes" frameborder="no" width="100%"></iframe> </div> </iframe>
当我设置这些iframe height:100%的时候,第一个iframe总是会出现滚动条;
随后我发现iframe的父级容器div总是会比iframe大5px。
如果要解决问题的话,可以在父级div中设置高度,但是如果父级div还有div嵌套的话,这样层层设置就很冗余了。
随后在网上寻找解决方案,div包裹的iframe有5px的高度差问题
2016年10月13日更新:
这个问题产生的原因是什么呢?
网上说html规范导致的,如果是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
这样是没问题的。
而使用html5标签
<!DOCTYPE html> <html>
就会相差几个像素;
其实不一定就是5个像素,相差的像素取决于行内高度。
为什么这么说呢?因为上面的原因并不是导致这样问题的真正根源。
真正的原因是iframe在html5中的是一个行内样式(display: inline),虽然并没有写出来,但是表现出来的就是一个行内样式。
这也是为什么给iframe设置dispaly:block;或者vertical-align:bottom或者给外层div设置font-size:0就可以让空白空间消失了。img和外层div也有这个问题,也可以这样解决。
感谢张鑫旭大牛的文章,让我明白了这个问题。推荐他的文章:
CSS深入理解vertical-align和line-height的基友关系
相关文章推荐
- JS怎么控制IFRAME高度自动适应内容而不出现滚动条
- IE8以下版本iframe出现滚动条和内容空白问题
- div里嵌套iframe,让iframe及div高度一起随内容自适应高度问题
- flex自适应高度内容高度超出容器高度自动出现滚动条的问题
- Flex嵌套Iframe,点击除Iframe的其他地方后,Iframe内容消失的问题。
- 内容超过div的长度后自动出现滚动条的实现方法
- Jquery 操作页面中iframe自动跟随窗口大小变化,而不出现滚动条,只在iframe内部出滚动条
- 浏览器兼容问题项目总结(六) 页面嵌套多个iframe滚动条兼容性修改
- Winform中,容器AutoScroll=true,如何判断运行时是否出现了滚动条(ScrollBar)以及滚动条的宽高度
- Jquery 操作页面中iframe自动跟随窗口大小变化,而页面不出现滚动条,只在iframe内部出滚动条
- 100%布局的头部,内部内容960居中出现滚动条的时候,注意的小东西
- iframe高度设置100%了,并且设置了无滚动条属性,还是出现滚动条
- 在页面中嵌套Ifram框架,页面的高度会随着iframe中内容的高度改变而改变
- 计算并设置ListView的高度,防止嵌套ScrollView监听出现问题,(两种方法,一种自定义,一种测量)
- iframe高度适应内容相关问题
- 使用事件捕获实时捕获img是否加载完毕, 实现iframe内容高度自动适应
- Android ListView中嵌套EditText,随着软件盘的出现和消失,EditText焦点和内容混乱的问题
- 解决iframe出现两个滚动条的问题
- Jquery 操作页面中iframe自动跟随窗口大小变化,而不出现滚动条,只在iframe内部出滚动条
- Iframe内部调用外部的location.href跳转出现奇怪问题