有没有办法让<iframe>
的高度完全达到页面的底部?使用height:xx%
很难判断,它可能依赖于浏览器。
代码如下:
<!DOCTYPE html>
<html>
<body style="margin:0">
<p style="margin:10px"> hello </p>
<iframe src="http://www.weather.com" style="width:100%; height:95%"></iframe>
</body>
</html>
答案 0 :(得分:7)
使用JavaScript / jQuery,您可以精确地为IFRAME
元素设置正确的维度,而无需访问框架本身的DOM(跨域问题),依赖于表格或绝对定位(无用)如果框架上方的内容是高度动态的:)
$(function() {
var aboveHeight = $("#aboveFrame").outerHeight(true);
$(window).resize(function() {
$('#frame').height( $(window).height() - aboveHeight );
}).resize();
});
答案 1 :(得分:1)
尽管使用表格进行布局很烦人,但它们仍然是始终如一地处理垂直尺寸的最佳方式。以下内容仍会在iframe的边缘显示一些白色像素,并且在某些版本的Firefox中有一个额外的滚动条,但是我已经能够实现:
<!DOCTYPE html>
<html style="padding:0; margin:0; height:100%">
<body style="padding:0; margin:0; height:100%">
<table style="border:0; padding:0; margin:0; height:100%; width:100%">
<tr style="border:0; padding:0; margin:0">
<td style="border:0; padding:0; margin:0">
<p style="margin:10px"> hello </p>
</td>
</tr>
<tr style="border:0; padding:0; margin:0">
<td style="border:0; padding:0; margin:0; height:100%">
<iframe src="http://www.weather.com" style="border:0; padding:0; margin:0; width:100%; height:100%"></iframe>
</td>
</tr>
</table>
</body>
</html>
如果您真的想要避开表格元素,可能会使用display:table
,display:table-row
和display:table-cell
从div标签中获得一些牵引力,但要为更烦人的怪癖做好准备在某些浏览器中。
答案 2 :(得分:0)
<!DOCTYPE html>
<html style="height:100%">
<body style="margin:0; >
<p style="margin:10px"> hello </p>
<iframe src="http://www.weather.com" style="width:100%; height:100%"></iframe>
</body>
</html>
嗯,这似乎很棘手,但你必须保持<html>
或<body>
标签高度100%来实现这个目标
答案 3 :(得分:0)
如果您的<p>
标记内容已修复,则可以通过相对调整<p>
和<iframe>
的高度来尝试this way,并且您必须保留{{1}或<html>
标签高度100%否则无法正常工作
答案 4 :(得分:0)
我最近遇到了同样的问题。我相信你想要扩展高度以适应动态加载的内容。这就像一场梦。 :)
<!--This script will auto size the height. Must set the id for it to work.-->
<script type="text/javascript">
<!--//
function sizeFrame() {
var F = document.getElementById("myFrame");
if(F.contentDocument) {
F.height = F.contentDocument.documentElement.scrollHeight+30; //FF 3.0.11, Opera 9.63, and Chrome
}
else {
F.height = F.contentWindow.document.body.scrollHeight+30; //IE6, IE7 and Chrome
}
}
window.onload=sizeFrame;
//-->
</script>
答案 5 :(得分:0)
作为body元素的子元素的iframe与其父元素的高度为100%,在您创建iframe
整页之前,您必须声明body
的高度把它整整一页。
试试这个。 (我认为如果你将CSS放在外部文件中或者只是在head
内部
<!DOCTYPE html>
<html>
<head>
<style type='text/css'>
body {height:100%;}
iframe {height:100%;width:100%;}
</style>
</head>
<body style="margin:0">
<p style="margin:10px"> hello </p>
<iframe src="http://www.weather.com"></iframe>
</body>
</html>
答案 6 :(得分:0)
<!DOCTYPE html>
<html>
<head>
<style>
html, body
{
height: 100%;
margin:0px;
padding:0px;
}
#divHeader
{
height:25px;
}
#divContent
{
box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
height:100%;
width:100%;
margin-top:-25px;
padding-top:25px;
overflow:hidden;
}
iframe
{
width:100%;
height:100%;
}
</style>
</head>
<body>
<div id="divHeader">
header
</div>
<div id="divContent">
<iframe src="http://www.weather.com"></iframe>
</div>
</body>
</html>
答案 7 :(得分:0)
试试这个......
<!DOCTYPE html>
<html>
<head>
<style>
html, body
{
height: 100%;
margin:0px;
padding:0px;
}
</style>
</head>
<body>
<iframe src="http://www.weather.com" onload="this.height = document.body.offsetHeight;"></iframe>
</body>
</html>
您可以查看演示here
答案 8 :(得分:0)
答案 9 :(得分:0)
我一直使用身高:100vh;给你100%的视口