用好CSS object-fit属性,让图片实现适应宽高比

张子凡 设计开发 2022-04-04 22:43:56 阅读(...) 评论(0)

刚刚在优化泪雪旗下的一个网站,之前由于网站为了适配响应式的头图效果,所有首页的大多图片都是用 css 的 background-imgage,然后和 background-size:cover 来适配图片,保持图片的大小比例而不被裁切或压缩,但是由于使用这样的方式搜索引擎无法很好的抓取页面图片,尤其是如果首页没有 img 图片样式,对于页面在搜索结果中出图就毕竟有影响。

crop images css

所以子凡为了优化这个细节,决定还是将之前的方法缓存 img 图片标签的方法,那么如何解决图片宽高比的适配,就需要直接用到 CSS 的 object-fit 属性。例如:object-fit: cover;

1
2
3
4
//img 图片适配
img{
  object-fit: cover;
}

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

您可以通过使用 object-position 属性来切换被替换元素的内容对象在元素框内的对齐方式。

语法

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

取值

contain:被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加“黑边”。

cover:被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。

fill:被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。

none:被替换的内容将保持其原有的尺寸。

scale-down:内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/css-object-fit.html

发表评论