我通常使用类似于this one的解决方案。
.wrapper {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
}
.wrapper iframe {
position:absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
但这次我无法访问HTML或JavaScript代码,因此无法使用 Package 器来阻止height:0
。
有没有一种方法可以让iframe只使用CSS来响应(并保持比率)?
已尝试此操作(适用于iframe,但不适用于其内容):
iframe {
width: 100%;
background: red;
height: 0;
padding-bottom: 33%;
}
fiddle
有什么想法吗?不需要支持旧的浏览器,所以即使是CSS3解决方案也会很棒。
7条答案
按热度按时间uyto3xhc1#
下面是一个Fiddle的解决方案,它基于一个CSS 2秘密:https://jsfiddle.net/59f9uc5e/2/
通过如何处理填充百分比值来解释:
该百分比是根据所生成框的包含块的宽度计算的,即使对于“padding-top”和“padding-bottom”也是如此。
https://www.w3.org/TR/CSS2/box.html#padding-properties
cedebl8k2#
使用新的CSS windows 单位
vw
和vh
( windows 宽度/ windows 高度)浏览器支持也很好:IE9+(caniuse)
zzlelutf3#
Calc函数使其可读性更强:
width
和height
大小适用于桌面,也可回退到早期的浏览器40px
是边距(两侧iframe边框和视口边框之间20像素)16/9
是视频的比率(如果您有窄边框播放器)pnwntuvh4#
使用css aspect-ratio,这很容易。
7cjasjjr5#
请将此样式添加到您尝试加载的Web URL内容中。它将保持16:9的纵横比。
omvjsjqw6#
这是一种hackish,但你可以使用图像来保持视频的纵横比。例如,我去油漆和保存一个1280 x 720分辨率的图像使用16:9的纵横比(在这里,我只会从互联网上的某个地方抓一个空白图像)。
这是因为如果您在保持高度自动的同时更改图像的宽度,反之亦然,图像将自动缩放-保持比例。
第一个
0s0u357o7#
我遇到了同样的问题,这对我很有效: