我有一个非常简单的问题。 如何确保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。这个当前代码的问题是,它只调整宽度,留下不需要的信箱。
答案 0 :(得分:2)
您确实不需要媒体查询来实现此目的,但如果您愿意,可以将其转移到媒体查询中。那么,它是如何实现的?
因为,我们知道我们需要aspect ratio of 16:9
且宽度不应超过 90vw ,因此高度也不应超过 50.85vw < / em>的。我们根据您对容器的 600px和338 px 的绝对尺寸限制设置max-height and max-width
。
现在,设置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>
答案 1 :(得分:0)
将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%;
}