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>

如何解决?

原文由 katspaugh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 286
2 个回答

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),这将消除空白问题。

原文由 wickywills 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

display:block; 添加到 iframe 的 CSS。

原文由 tomsullivan1989 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏