我使用TinyMCE作为我的WYSIWYG文本编辑器,因此iframe创建时没有标签。我在网上的解决方案都使用jQuery来调整带有特定标签的iframe,但是如何调整页面上的所有iframe呢?我已经尝试使用CSS width: 100%
并且它可以正常工作,但是当我添加height: auto
时,它不会相应地调整。
我怎样才能使未标记的iframe自动调整其高度到页面的宽度?
答案 0 :(得分:3)
无法使用CSS指定此内容,iframe需要解析为绝对高度( iframe的内容将调整为iframe的大小,而不是其他方式)。
但是,如果您要嵌入的内容相对可预测,那么您嵌入的视频的宽高比是不变的,可以使用包装器div
作为替代方案。超过iframe
:
<强> HTML 强>
<div class='video-wrapper'>
<iframe ...></iframe>
</div>
<强> CSS 强>
.video-wrapper {
position: relative;
height: 0;
padding-bottom: 56.25%;
}
.video-wrapper iframe {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
您在包装器div的padding-bottom
属性中插入宽高比,它由公式video_height / video_width * 100
计算。例如,宽高比为16:9的视频会为您提供9 / 16 * 100 = 56.25%
。
现在,棘手的部分是在TinyMCE中获取包装器<div>
,除非编辑底层HTML,否则这可能是不可能的。另一种方法是使用jQuery将所有iframe包装在divs中:
$('iframe').wrap('<div class="video-wrapper"></div>');
希望这有帮助!