嵌入 YouTube 视频时自动高度?

新手上路,请多包涵

我在我的网站上嵌入了一个 YouTube 视频,但问题是我需要根据视频的宽度和纵横比自动调整高度。所以如果我的宽度是 1280,如果视频是 16:9,我的高度应该是 720。我试过使用“VW”和“VH”单元,但它们似乎不适用于 iframe。我的宽度已经按比例设置。

我的代码如下:

 <iframe style="margin-right: 1%; margin-left: 1%;" width="98%" height="" src="https://www.youtube.com/embed/HwzQbfde-kE" frameborder="0"></iframe>

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

阅读 461
2 个回答

本文 包含一个很好的答案,复制如下。

CSS:

 .video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
}
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

示例 HTML

 <div class="video-container">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/_TyJeKKQh-s?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

这是如何工作 的:容器元素被赋予零高度和百分比底部填充。底部填充百分比是容器宽度的百分比,因此它具有固定的纵横比。但是为了让 iframe 显示在零高度容器内,您需要使容器相对且 iframe 绝对,位于 div 内。

看一个 活生生的例子


编辑: 如果您需要使用 100% 以外的百分比宽度,请将该比率乘以宽度乘数。请参见下面的示例:

 .video-container {
  position: relative;
  padding-bottom: calc(56.25% * 0.75); /* 16:9 */
  width: 75%;
  height: 0;
}

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

如果你去整个视口,你可以使用下面的代码:

 iframe{
  width: 100vw;
  height: calc(100vw/1.77);
}

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

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