使用css3 object-fit属性让修改video显示比例。
2018-08-22 本文已影响435人
_Lsuyan_
在使用video标签的时候,很多时候我们并不想去使用默认的16:9的显示比列,而自定义的宽和高显示出来后,又总是被默认比列所影响。
那么如何解决呢?
其实想要video能自动填充慢父div的大小,只要给video标签加上 style="width= 100%; height=100%; object-fit: fill"即可。
当然了,前面也说了是修改了video原本的显示比例,这种强制铺满可能会导致视频的变形。
<div class="test" style="width:200px;height:300px;overflow:hidden;">
<video id="video" style="width:100%;height:100%;object-fit:fill"></video>
</div>
那么这个object-fit有何特点呢?
object-fit取值说明:
object-fit主要适合于替换元素,比如:
<video>、<object>、<img>、<input type="image">、<svg>、<svg:image>和<svg:video>等。
其默认值为fill。
- fill:此值为boject-fit的默认值,替换内容的大小被设置为填充元素的内容框,也就是说,元素的内容扩大到完全填充容器的外形尺寸,即使这打破其内在的宽高比。
- contain:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为一个包含元素的宽度和高度。也就是说,如果你在替换元素上设置一个明确的高度和宽度,此值将导致内容大小,完全在固定的比例显示,但仍在元素尺寸内显示。
- cover:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为覆盖整个元素的宽度和高度。也就是说,替换元素内容大小保持长宽比,但改变宽度和高度,以便完全覆盖内容元素。
- none:替换元素内容不调整大小以适应内部元素的容器,内容完全忽略设置在元素上的任何高度和权重,并且仍在元素尺寸内显示。
- scale-down:当内容大小设置了non或contain,将导致具体对象变得更小。
再来看看这个属性的兼容性!
caniuseOh!shit!shit!shit!shit!万恶的IE,K.O!
如果不考虑IE的话,可以尝试一下使用这个简单粗暴的属性。
反正我这次开发就不考虑IE,也没这个需求,就直接用呗,何必为难自己呢。哈哈哈~
→ 参考原文地址 ←
对了,鑫大大有对这个属性更深入的探讨,主要讲解了该属性在图片方面的运用。
感兴趣的同学请走传送门,咻咻咻。。