关于 iframe 在ie11 height:100% 无效的巨坑

Posted F_Ender

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 iframe 在ie11 height:100% 无效的巨坑相关的知识,希望对你有一定的参考价值。

好的,今天公司分配了个解决ie中的bug的任务,其中,有一个就是iframe 的高度 100% 没有生效的问题;

一开始,由于我真的没有怎么去了解过iframe这个货,所以,网上各种搜索一大堆关于这货的资料,到最后,发现并没有卵用,没有找到问题的重点;

甚至搜索到请求头要设置X-Frame-Options这个参数的点上去了,顺带说说,X-Frame-Options这个参数:

有时候为了防止网页被别人的网站iFrame,我们可以通过在服务器设置HTTP头部中的X-Frame-Options信息
使用 X-Frame-Options 有三个可选的值:

DENY:浏览器拒绝当前页面加载任何Frame页面

SAMEORIGIN:frame页面的地址只能为同源域名下的页面

ALLOW-FROM:origin为允许frame加载的页面地址

因此如果设置的值为DENY的时候,确实是不能显示出来Frame,但是和我现在的问题并没有什么卵关系;

好了废话了这么多,现在来讲讲,为什么iframe 的高度100%会没有生效呢?

首先这只是个ie11的bug,在ie11中,要让iframe的高度100%生效,则必须要确定其父节点元素也设置了height:100%并且有效;

也即是说解决方法是在iframe的父节点元素设置css样式 height: 100%,并且是生效的;这样,iframe 的高度100%自然也就会乖乖的相对其父亲有效了;

 

图例:

1、before

2、after

 

 

最后,分享出来希望大家能够不要被坑到了。有什么错的地方希望各路大神指教指教,谢谢!

以上是关于关于 iframe 在ie11 height:100% 无效的巨坑的主要内容,如果未能解决你的问题,请参考以下文章

IE 11 第一方会话 cookie 在 iframe 中丢失

IE11 中的 iframe 内容仅显示白屏

Telerik RadDatePicker 隐藏在 IE11 中的 iframe 后面

Iframe 中的表单未使用 Jquery 在 IE11 中提交

vue+iframe实现点击F11全屏效果

从 IFRAME IE11 调用父 JavaScript