自动设置 iframe 高度

Posted

技术标签:

【中文标题】自动设置 iframe 高度【英文标题】:set the iframe height automatically 【发布时间】:2013-02-21 17:54:44 【问题描述】:

我需要在框架内嵌入一个 html 页面,并使用以下代码:

<iframe src="http://www.google.com" style="width: 90%; height: 300px"
    scrolling="no" margin margin frameborder="0"
    vspace="0" hspace="0">

我正在尝试将高度设置为自动,以便框架自动调整到页面长度,而不必像我在这里所做的那样对高度进行硬编码。我尝试了height:autoheight:inherit,但没有成功。

【问题讨论】:

您是否尝试过设置height:100%,如果 iframe 在正文中,应该让它填满正文? 【参考方案1】:

如果站点位于不同的域中,由于跨浏览器域的限制,调用页面无法访问 iframe 的高度。如果您可以访问这两个站点,则可以使用document domain hack。那么 anroesti 的链接应该会有所帮助。

【讨论】:

GitHub 上的这个库解决了跨域问题,同时确保 iFrame 在事情发生变化时保持内容大小。 github.com/davidjbradshaw/iframe-resizer【参考方案2】:

试试这个编码

<div>
    <iframe id='iframe2' src="Mypage.aspx" frameborder="0" style="overflow: hidden; height: 100%;
        width: 100%; position: absolute;"></iframe>
</div>

【讨论】:

注意:我发现使用样式高度和宽度是有问题的。高度和宽度属性在这里似乎始终如一地起作用。您同时使用两者有什么原因吗? % on iframe's height/width is invalid HTML5 as per spec(虽然之前有效)【参考方案3】:

如果你是像 Bootstrap 这样的框架,你可以使用这个 sn-p 使任何 iframe 视频响应:

<div class="embed-responsive embed-responsive-16by9">
    <iframe class="embed-responsive-item" src="vid.mp4" allowfullscreen></iframe>
</div>

【讨论】:

【参考方案4】:

Solomon 关于引导程序的回答启发我添加引导程序解决方案使用的 CSS,这对我来说非常有效。

.iframe-embed 
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
    border: 0;

.iframe-embed-wrapper 
    position: relative;
    display: block;
    height: 0;
    padding: 0;
    overflow: hidden;

.iframe-embed-responsive-16by9 
    padding-bottom: 56.25%;

<div class="iframe-embed-wrapper iframe-embed-responsive-16by9">
    <iframe class="iframe-embed" src="vid.mp4"></iframe>
</div>

【讨论】:

太棒了!我不得不摆脱height: 0;,但除此之外它完美无瑕,这是在旧 gwt 应用程序中可调整大小的模式弹出窗口中托管的 iframe 中的角度页面! 适用于当前的 Chrome 2020 年 9 月。谢谢。

以上是关于自动设置 iframe 高度的主要内容,如果未能解决你的问题,请参考以下文章

iframe 自动调整其高度以适应内容高度

如何让iframe自适应高度

当 iframe 内容的高度发生变化时自动调整 iframe 高度(同域)

让 iframe 自动调整高度

iFrame 高度自动 (CSS)

嵌入 YouTube 视频时自动高度?