gpt4 book ai didi

javascript - 如何将 iframe 高度和宽度设置为 100%

转载 作者:技术小花猫 更新时间:2023-10-29 12:33:34 24 4
gpt4 key购买 nike

我需要做以下事情:

  1. 我有一个 70 像素的 header 内容和一个带有包装器的 iframe。iframe 的高度和宽度必须设置为 100%,而不滚动,除了当内容已加载,内容的大小更多。
  2. iframe 的内容是同一域中的另一个 HTML 页面。iframe 也需要根据响应式 HTML 进行缩放页面。

有人能帮忙吗?

我不能使用的东西:

位置:固定;(主要是由于我为侧边栏使用的脚本

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Bus Management System</title>
<!-- Viewport meta tag to prevent iPhone from scaling our page -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">


<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>

$(function(){

var iFrames = $('iframe');

function iResize() {

for (var i = 0, j = iFrames.length; i < j; i++) {
iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
}

if ($.browser.safari || $.browser.opera) {

iFrames.load(function(){
setTimeout(iResize, 0);
});

for (var i = 0, j = iFrames.length; i < j; i++) {
var iSource = iFrames[i].src;
iFrames[i].src = '';
iFrames[i].src = iSource;
}

} else {
iFrames.load(function() {
this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
});
}

});
</script>


</head>

<style type="text/css" media="all">
html, body, iframe {width:100%; height:100%;box-sizing:border-box; margin:0; padding:0; border:0;}
body {border:4px solid green;}
iframe {border:6px solid red;width:100%; height:100%;display:block;}
#wrapper {border:2px solid blue; width:100%; height:100%;}

</style>
<body>
<div style="height:50px; background-color:#000; color:#fff;">Header</div>

<iframe src="http://www.google.com" style="width:100%; height:100%;" onLoad="calcHeight();"></iframe>

</body>
</html>

最佳答案

100% 宽度和高度以及响应式的纯 CSS 解决方案

HTML

<div class="container">
<div class="h_iframe">
<iframe src="//www.youtube.com/embed/9KunP3sZyI0" frameborder="0" allowfullscreen></iframe>
</div>
</div>

CSS

html,body {
height:100%;
}
.h_iframe iframe {
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
}

DEMO

没有position:absolute

CSS

html,body        {height:100%;}
.h_iframe iframe {width:100%; height:100%;}
.h_iframe {
height: 100%;
}

DEMO 2

最后是裂缝

现代浏览器现在支持:

width: calc(100% - 70px);

CSS

html,body {
height:100%;
margin-top:0;
margin-bottom:0;
}
.h_iframe iframe {
width:100%;
height:calc(100% - 75px);
}
.h_iframe {
height: 100%;
}
.element{
width:100%;
height:70px;
background:red;
}

HTML

<div class="container">
<div class="element">here it goes</div>
<div class="h_iframe">
<iframe src="//www.youtube.com/embed/9KunP3sZyI0" frameborder="0" allowfullscreen></iframe>
</div>
</div>

Final DEMO

关于javascript - 如何将 iframe 高度和宽度设置为 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com