Max*_*ari 6 html css html5-video responsive-design
正如标题所述,如果我将<video>s 包装在一个<div>容器中(以进一步添加一个叠加层),设置为relative; inline-block; height:100%;while <video>的大小是height:100%; width:auto在初始页面渲染时它很好,但只要你调整页面大小,视频就会收缩/增长,但容器的宽度保持不变.
这是给你的一个codepen:http://codepen.io/MaxYari/pen/PqeOQY
试着改变窗口的高度,看看我的意思.
换句话说 - 我想制作一个环绕<video>标签的容器,它根据其性质保留其纵横比.
这个div-video结构必须适合更大的容器列表.
适合较大的一面,取决于container-list方向.即height: 100%水平.
独立CSS一定可以为不同的方向进行,所以我只是想解决一个情况下,假定它会解决这两个.
编辑:更新了笔并为视频包装器添加了边框,以更好地说明它的无瑕疵.
在 Firefox 中,看起来你可以像这样display: inline-block;更改display: inline-flex;:
示例 - 不适用于 Google Chrome;对于带有一些 JavaScript 的多浏览器解决方案,请往下看
body,
html {
height: 100%;
}
#videos {
position: relative;
height: 30%;
background-color: rgba(0, 0, 0, 0.8);
}
.video_wrapper {
height: 100%;
display: inline-flex; /* see change here */
}
.video {
height: 100%;
width: auto;
}Run Code Online (Sandbox Code Playgroud)
<div id="videos">
<div class="video_wrapper">
<video class="video" autoplay src="http://techslides.com/demos/sample-videos/small.mp4"></video>
</div>
<div class="video_wrapper">
<video class="video" autoplay src="http://techslides.com/demos/sample-videos/small.mp4"></video>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
看起来让它在 Chrome 中工作的唯一方法是在调整窗口大小时强制重新绘制:
$(window).resize(function () {
$('.video_wrapper').hide().show(0);
});
Run Code Online (Sandbox Code Playgroud)
Chrome 似乎在流畅视频方面存在问题,看起来与object-fit 属性有关,幸运的是您可以使用上面的方法解决它。