图片object-fit 属性使用

781 阅读2分钟

    海上月是天上月,
    眼前人是心上人。 
    向来心是看客心,
    奈何人是剧中人。
                 
            -- 张爱玲

以前当图片比例与容器比例不匹配时,为了不让图片发生拉伸,一般我会把该图片设为背景图,通过背景的属性来防止图片变形,最近发现了object-fit这个属性可以设置图片的比例,下面简单说明一下:

object-fit

定义

object-fit: CSS 属性指定可替换元素的内容应该如何适应到其使用的高度和宽度确定的框。

参数说明

object-fit 属性由下列的值中的单独一个关键字来指定:

参数 取值
fill 默认值,被替换的内容大小可以填充元素的内容框。 整个对象将完全填充此框。 如果对象的高宽比不匹配其框的宽高比,那么该对象将被拉伸以适应
contain 被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加黑边
cover 被替换的内容大小保持其宽高比,同时填充元素的整个内容框。 如果对象的宽高比与盒子的宽高比不匹配,该对象将被剪裁以适应
none 被替换的内容大小保持其宽高比,而且被替换的内容尺寸不会被改变。如果容器尺寸小于图片内容尺寸,只显示容器大小范围的部分;反之,图片会全部显示,但会有留白
scale-down 内容的尺寸就像是指定了none或contain,取决于哪一个将导致更小的对象尺寸。如果容器尺寸大于图片内容尺寸,保持图片的原有尺寸,不会放大失真;容器尺寸小于图片内容尺寸,用法跟contain一样

各个浏览器支持情况

举例

object-position

img有了object-fit,还得有个位置属性object-position,用法跟background-position一样,在其内容框中的位置.