我如何确保iFrame的宽高比是否有效?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何确保iFrame的宽高比是否有效?相关的知识,希望对你有一定的参考价值。
我有一个非常简单的问题。如何确保iframe的宽高比具有响应性?
iframe是YouTube视频,我希望无论浏览器窗口大小如何,iframe的宽高比都保持为16:9。
这是我目前的移动设备代码:
@media screen and (max-width: 600px) {
iframe, body {
max-width: 90vw;
height: auto;
}
}
iframe {
border: 0;
width: 600px;
height: 338px;
}
由于YouTube iframe不会自动保持宽高比,我需要一种方法来保持视频的宽高比,宽度为90vw。这个当前代码的问题在于,它只调整宽度,留下不需要的信箱。
答案
你真的不需要媒体查询来实现这一目标,但如果你愿意,你可以将其转移到媒体查询中。那么,它是如何实现的?
因为,我们知道我们需要aspect ratio of 16:9
,宽度不应超过90vw,因此高度也不应超过50.85vw。我们根据你的绝对尺寸限制设置max-height and max-width
,容量是600px和338 px。现在,设置iframe dimensions to the 100% of the container
,它继承了那个维度。 :)
.tv-wrapper {
max-width:600px;
max-height:338px;
width:90vw;
height:50.85vw;
margin:0 auto;
}
iframe {
width:100%;
height:100%;
}
<div class="container">
<div class="tv-wrapper">
<iframe class="sproutvideo-player" src="//videos.sproutvideo.com/embed/489adcb51e1debcdc0/e0d9daac7a1a9b30?
bigPlayButton=false&showControls=false" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
</div>
</div>
另一答案
将iframe包装在容器中。
.media-container {
position: relative;
padding-bottom: 56.25%; // = 16:9
}
.media-container iframe {
position: absolute;
top: 0;
left:0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
}
以上是关于我如何确保iFrame的宽高比是否有效?的主要内容,如果未能解决你的问题,请参考以下文章
在 UIImageView 中应用适合图像的宽高比后如何知道图像大小
在自定义UITableViewCell中保持UIImageView的宽高比