`object-fit` 属性指定元素的内容应该如何去适应指定容器的高度与宽度。
`object-position` 属性一般与 `object-fit`一起使用,用来设置元素的位置。
图片在网页中有2种表现形式,使用CSS
的background-image
或者HTML的img
标签来实现。
背景图实现如notion的封面图效果可以使用background-position
或者background-size
轻松实现:
这样就能做到图片自适应了,其实我们也可以不用背景图,而是使用img标签,再借助于CSS3
新增的2个属性也能轻松做到。代码如下:
HTML部分:
<img class="img" src="https://www.notion.so/images/page-cover/woodcuts_7.jpg" alt="">
CSS3部分:
.img{
display: block;
width: 100%;
height: 30vh;
object-fit: cover;
object-position: center center;
}
一、object-fit的用法
这里的object-fit
其实就相当于是 背景图 background-size
的作用。
标签定义及使用说明:
object-fit
属性指定元素的内容应该如何去适应指定容器的高度与宽度。
object-fit
一般用于 img
和 video
标签,一般可以对这些元素进行保留原始比例的剪切、缩放或者直接进行拉伸等。
取值如下:
属性值 | 描述 |
---|---|
fill | 默认,不保证保持原有的比例,内容拉伸填充整个内容容器。 |
contain | 保持原有尺寸比例。内容被缩放。 |
cover | 保持原有尺寸比例。但部分内容可能被剪切。 |
none | 保留原有元素内容的长度和宽度,也就是说内容不会被重置。 |
scale-down | 保持原有尺寸比例。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。 |
二、object-position的用法
这里的object-position
其实就相当于是 背景图 background-position
的作用。
标签定义及使用说明:
object-position
属性一般与 object-fit
一起使用,用来设置元素的位置。
object-position
一般用于 img
和 video
标签。
语法:
object-position: position|initial|inherit;
其中position的指定 image 或 video 在容器中的位置。第一个值为 x 坐标位置的值,第二个值为 y 坐标位置的值。
取值同background-position
:
object-position: 50% 50%; /*百分比*/
object-position: left bottom; /*方向词*/
object-position: 250px 125px; /*px*/