使用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。
  1. fill:此值为boject-fit的默认值,替换内容的大小被设置为填充元素的内容框,也就是说,元素的内容扩大到完全填充容器的外形尺寸,即使这打破其内在的宽高比。
  2. contain:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为一个包含元素的宽度和高度。也就是说,如果你在替换元素上设置一个明确的高度和宽度,此值将导致内容大小,完全在固定的比例显示,但仍在元素尺寸内显示。
  3. cover:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为覆盖整个元素的宽度和高度。也就是说,替换元素内容大小保持长宽比,但改变宽度和高度,以便完全覆盖内容元素。
  4. none:替换元素内容不调整大小以适应内部元素的容器,内容完全忽略设置在元素上的任何高度和权重,并且仍在元素尺寸内显示。
  5. scale-down:当内容大小设置了non或contain,将导致具体对象变得更小。

再来看看这个属性的兼容性!

caniuse

Oh!shit!shit!shit!shit!万恶的IE,K.O!
如果不考虑IE的话,可以尝试一下使用这个简单粗暴的属性。
反正我这次开发就不考虑IE,也没这个需求,就直接用呗,何必为难自己呢。哈哈哈~

参考原文地址

对了,鑫大大有对这个属性更深入的探讨,主要讲解了该属性在图片方面的运用。
感兴趣的同学请走传送门,咻咻咻。。

半深入理解CSS3 object-position/object-fit属性

上一篇下一篇

猜你喜欢

热点阅读