【发布时间】:2018-01-01 02:55:04
【问题描述】:
这很好用,直到我在同一个容器中有 2 个或更多 iframe,然后它们才会相互重叠,因为它们都具有相同的绝对位置。
如何在为容纳 iframe 并保持其纵横比而构建的容器内允许任意数量的 iframe?
发件人:https://www.h3xed.com/web-development/how-to-make-a-responsive-100-width-youtube-iframe-embed
创建响应式 YouTube 嵌入的关键是使用填充和容器元素,它允许您为其提供固定的纵横比。您还可以将此技术用于大多数其他基于 iframe 的嵌入,例如幻灯片。
这是典型的 YouTube 嵌入代码的外观,具有固定的宽度和高度:
<iframe width="560" height="315" src="//www.youtube.com/embed/yCOY82UdFrw"
frameborder="0" allowfullscreen></iframe>
如果我们可以给它一个 100% 的宽度,那就太好了,但它不会工作,因为高度保持固定。您需要做的就是将它包装在这样的容器中(注意类名并删除宽度和高度):
<div class="container">
<iframe src="//www.youtube.com/embed/yCOY82UdFrw"
frameborder="0" allowfullscreen class="video"></iframe>
</div>
并使用以下 CSS:
.container {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
}
.video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
【问题讨论】:
-
纵横比会很棘手,表格可能会起作用吗?
-
您是否建议将每个 iframe 放入一个表格中?
-
我正在使用的 html 是用户输入,这是来自富文本编辑器的输出,我允许用户在其中输入可能包含 iframe 的任意 html(我做了一些清理以避免恶意代码)。