为啥 iframe 比 body 大? iframe在100vh时添加垂直滚动条[重复]

Posted

技术标签:

【中文标题】为啥 iframe 比 body 大? iframe在100vh时添加垂直滚动条[重复]【英文标题】:Why iframe is bigger than body? iframe adds vertical scrollbar when 100vh [duplicate]为什么 iframe 比 body 大? iframe在100vh时添加垂直滚动条[重复] 【发布时间】:2018-01-06 23:14:39 【问题描述】:

假设我有非常简单的标记。我希望 iframe 占据屏幕高度的 100%,但设置 100vh 仍会添加滚动条。

* 
  box-sizing: border-box;


body 
  margin: 0;


iframe 
  width: 100%;
  height: 100vh;
<iframe scr="https://en.wikipedia.org/wiki/Main_Page"></iframe>

但我看到垂直滚动条。为什么会显示以及如何摆脱它?

【问题讨论】:

因为身高。 默认情况下,body 有 padding 和 maging。尝试在 iframe 中将其设为 0 【参考方案1】:

假设您希望它是全屏的:

    添加display:block; 添加'allowfullscreen' 属性。

改为:

<iframe scr="https://en.wikipedia.org/wiki/Main_Page" allowfullscreen></iframe>

【讨论】:

添加 allowfullscreen 根本没有帮助我。去掉高度是无意义的。它将如何帮助我获得 100% 的 iframe 高度?【参考方案2】:

您可以简单地解决此问题,只需将float:leftdisplay:block 添加到iframe 即可

* 
  box-sizing: border-box;


body 
  margin: 0;


iframe 
  width: 100%;
  height: 100vh;
  padding:0;
  display:block;
&lt;iframe scr="https://en.wikipedia.org/wiki/Main_Page"&gt;&lt;/iframe&gt;

【讨论】:

只想添加这样的答案。也许还添加一个“溢出:隐藏;” - 但这个答案应该会像魅力一样发挥作用。 溢出隐藏可能是移除 iframe 结束 接受display: block的回答。 @JishnuVS 你能删除-moz-box-sizing-webkit-box-sizing 和所有这些供应商的东西吗?它们适用于非常旧的浏览器。【参考方案3】:

iframe 具有默认的display: inline,因此将display 属性更改为display: block 可以解决此问题。

此外,如果iframe 是弹性项目(弹性容器的子项,在当前情况下为body 添加display: flex 将使iframe 成为弹性项目)它也会有所帮助,因为它将被隐式阻塞。

【讨论】:

【参考方案4】:

您无法控制跨域内容的高度。如果您尝试将一个外包 html 页面上传到您的 html 页面中,则您无法控制内容大小,只有在您有权访问源内容或服务器的情况下。然后你可以添加一些 JS 并且你不会有额外的滚动。

https://github.com/davidjbradshaw/iframe-resizer

【讨论】:

我不想控制域内容的高度。我只希望iframe 获得 100% 的屏幕高度,而不管内容如何。 这就是问题所在:“无论内容如何”。您无法知道 iframe 内容高度是多少。 没关系。我想设置 100% 的屏幕高度。 我已经按照你说的做了,把它设为 100%,但是你将你的 div 设置为 100%,它不会显示 100%。 也许你会在这里找到解决方案:***.com/questions/5867985/…【参考方案5】:

请检查这个。

* 
  box-sizing: border-box;


body 
  margin: 0;


iframe 
  width: 100%;
&lt;iframe scr="https://en.wikipedia.org/wiki/Main_Page"&gt;&lt;/iframe&gt;

【讨论】:

不,我希望 iframe 占据屏幕高度的 100%,更新问题。 好的,使用 float:left; 谢谢,目前唯一有效的答案。你能解释一下为什么会这样吗?

以上是关于为啥 iframe 比 body 大? iframe在100vh时添加垂直滚动条[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥前端尽量少用iframe

为啥 iframe 这么慢?

为啥前端尽量少用iframe

为啥我无法访问设置了 src 或 srcdoc 属性的 iframe 文档?

为啥同位素会混淆点击 iFrame?

为啥 iframe 被认为是危险的和安全风险?