【问题标题】:creating a 16:9 aspect ratio iframe based on browser size (percentage)根据浏览器大小(百分比)创建 16:9 纵横比 iframe
【发布时间】:2015-12-16 08:49:20
【问题描述】:

如何将 iframe 大小(在我的情况下 - 播放 youtube 的羽毛 iframe)设置为浏览器窗口的百分比?

我有一个可以是任意大小的浏览器,我想将 iframe 宽度设置为浏览器窗口的 80%..

16:9 aspect ratio with fixed width 提到一旦我选择了宽度,如何设置 16:9 的高度。我不明白如何使用它。

任何 jsfiddle 示例(或 codepen)都会有很大帮助。我尝试了很多不同的方法 - 但 iframe 不保持纵横比。

http://codepen.io/anon/pen/zvqQgq

<iframe src="https://www.youtube.com/embed/YAcLViTHDOo" width="50%" class="player" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>

如何将宽度设置为浏览器窗口的 80%,并允许高度为 80% 宽度的 16:9 比例?

【问题讨论】:

  • 我不希望通过其他堆栈示例进行修复。在我的研究中,该网址出现了

标签: jquery html css lightbox


【解决方案1】:

如果你添加一个包装器 div,你可以让 CSS 来解决问题:

<div class="fluidMedia">
    <iframe src="" frameborder="0"> </iframe>
</div>
<div class="fluidMedia" style="width:80%;">
    <iframe src="" frameborder="0"> </iframe>
</div>

CSS:

.fluidMedia {
    position: relative;
    padding-bottom: 56.25%; /* proportion value to aspect ratio 16:9 (9 / 16 = 0.5625 or 56.25%) */
    height: 0;
    overflow: hidden;
}

.fluidMedia iframe {
    position: absolute;
    top: 0; 
    left: 0;
    width: 100%;
    height: 100%;
}

【讨论】:

  • 如果我将宽度减小到一个很小的数字,效果就不会很好 - 比如 20% codepen.io/anon/pen/EVyYyq
  • 为什么包含padding-top: 30px;
  • 在不移除它的情况下,我在 16:9 播放器的顶部和底部出现了一个黑条(我猜它的高度为 30px)。删除 padding-top: 30px; 确实删除了边框。因为我也没有在源代码中看到它,所以我会建议编辑
【解决方案2】:

HTML:

<iframe src="" frameborder="0" class="sixteenByNineFrame"> </iframe>

CSS:

.sixteenByNineFrame{
    width: 80%;
    height: calc(80% / (16/9));
}

我们想要宽度/高度 = 16/9 所以如果我们有 width=80.

那么,高度 = (宽度 / (16/9))

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 2019-03-19
  • 2012-01-24
  • 2018-04-29
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多