是否所有浏览器都支持iframe height=100% ?
我使用doctype作为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在我的iframe代码中,如果我说
<iframe src="xyz.pdf" width="100%" height="100%" />
我的意思是它是否会取剩下的页面的高度(因为上面有另一个固定高度为50px的帧)
所有主流浏览器(IE/Firefox/Safari)都支持这个功能吗?
同样关于滚动条,即使我说scrolling="no",我也能在Firefox中看到禁用的滚动条…如何完全隐藏滚动条并自动设置iframe高度?
创建全屏iframe的3种方法:
Approach 1 - Viewport-percentage lengths
In supported browsers, you can use viewport-percentage lengths such as height: 100vh.
Where 100vh represents the height of the viewport, and likewise 100vw represents the width.
Example Here
body {
margin: 0; /* Reset default margin */
}
iframe {
display: block; /* iframes are inline by default */
background: #000;
border: none; /* Reset default border */
height: 100vh; /* Viewport-relative units */
width: 100vw;
}
<iframe></iframe>
方法2 -固定定位
这种方法相当简单。只需设置固定元素的位置,并添加100%的高度/宽度。
例子
iframe {
位置:固定;
背景:# 000;
边界:没有;
上图:0;右:0;
底部:0;左:0;
宽度:100%;
高度:100%;
}
< iframe > < / iframe >
方法3
对于最后一种方法,只需将body/html/iframe元素的高度设置为100%。
例子
Html, body {
高度:100%;
保证金:0;/*重置body元素*/的默认边距
}
iframe {
显示:块;/* iframe默认内联*/
背景:# 000;
边界:没有;/*重置默认边框*/
宽度:100%;
高度:100%;
}
< iframe > < / iframe >
只有这对我有用(但对于“同一域”):
function MakeIframeFullHeight(iframeElement){
iframeElement.style.width = "100%";
var ifrD = iframeElement.contentDocument || iframeElement.contentWindow.document;
var mHeight = parseInt( window.getComputedStyle( ifrD.documentElement).height ); // Math.max( ifrD.body.scrollHeight, .. offsetHeight, ....clientHeight,
var margins = ifrD.body.style.margin + ifrD.body.style.padding + ifrD.documentElement.style.margin + ifrD.documentElement.style.padding;
if(margins=="") { margins=0; ifrD.body.style.margin="0px"; }
(function(){
var interval = setInterval(function(){
if(ifrD.readyState == 'complete' ){
iframeElement.style.height = (parseInt(window.getComputedStyle( ifrD.documentElement).height) + margins+1) +"px";
setTimeout( function(){ clearInterval(interval); }, 1000 );
}
},1000)
})();
}
你可以使用任何一种:
MakeIframeFullHeight(document.getElementById("iframe_id"));
or
<iframe .... onload="MakeIframeFullHeight(this);" ....