Iframe在下方创造了额外的空间

时间:2014-01-09 16:09:23

标签: html css iframe

为什么iframe会在其元素下添加额外空间?看看这种奇怪的行为:

.border {
    background: red;
    width: 300px;
    height: 200px;
    border: 1px solid green;
    overflow: visible;
    margin: 0;
    padding: 0;
}

.border iframe {
    border: none;
    width: 300px;
    height: 100px;
    margin: 0;
    padding: 0;
    opacity: 0.8;
}

.border .lower {
    height: 100px;
    margin: 0;
    padding: 0;
    background: blue;
    opacity: 0.8;
}
<div class="border">
  <iframe src="https://example.com"></iframe>
  <div class="lower"></div>
</div>

如何解决?

9 个答案:

答案 0 :(得分:76)

display:block;添加到您的iFrame样式中,如下所示:

.border iframe {
    border: none;
    width: 300px;
    height: 100px;
    margin: 0;
    padding: 0;
    opacity: 0.8;
    display:block; /* Add this */
}

iFrame是一个内联框架,意味着它是一个内联元素,与img标签一样,可能会出现空白问题。在其上设置display:block;会将iFrame转换为块元素(如div),这将消除空白问题。

答案 1 :(得分:8)

iframe是一个内联元素。这会将HTML中的空格考虑在内。 display:inline-block以困难而臭名昭着。

display:block;添加到iframe的CSS中。

答案 2 :(得分:1)

在我的情况下,iframe正确放置在块中,并且宽度和高度均正确。 我将此应用到了iframe的容器上,它起作用了:

.iframe-container{
line-height:0px;
}

答案 3 :(得分:0)

对我的应用程序有用的是将overflow-y: hidden;添加到iframe的html中。

答案 4 :(得分:0)

最简单的方法是添加&#34; style =&#34; display:block&#34;&#34;在iframe params。

例如

    <iframe width="100%" height="100%" frameborder="0" style="display:block" 
    src="https://www.url.com"></iframe>

答案 5 :(得分:0)

在仅为移动设备或台式机进行设计时,其他答案也对我有用,但是当填充底部根据屏幕大小而有所不同时,则无法使用。

有效的方法是使用Viewport Height

我将这些添加到了CSS中,它在所有决议中均解决了该问题。

.resp-iframe 
{
    height: 100vh;
    min-height: 800px;
}

答案 6 :(得分:0)

将框架放入div,并使div与iframe高度相同

像这样:

<div style="height: 370px;">
    <iframe height="370"></iframe>
</div>

答案 7 :(得分:-1)

iframe元素是内联元素。解决间距问题的一种方法是添加display: block,但您也可以通过简单地将vertical-align: bottom;添加到iframe元素来解决此问题。

答案 8 :(得分:-2)

这是另一个答案,请检查一下......

.border iframe {
border: none;
width: 300px;
height: 100%;
margin: 0;
padding: 0;
opacity: 0.8;
}