1. 测试案例

  • 需求: 要求表情库里所有表情包大小都固定
  • 实际效果: 由于图片原始大小都不一样,强行设定大小值会导致拉伸,如果不设定大小则参差不齐。例如:
//html
<body><img src="1.jpg" /><img src="2.jpg" /><img src="3.jpg" />....
</body>//css
img{
    width: 80px;
    height: 80px;margin-right: 10px;
}

2. 解决方法

大多数都是利用background-size: cover 来避免对图片造成的压缩或者拉伸。

小巧而强大的object-fit

object-fit似乎是被人忽视的一个CSS3属性。因为存在兼容性,所以没有background-size好用,但是由于某种情况,你不得不用img标签来引入图片,这时候用object-fit是很好的选择。

我们给上图所有img都统一加上object-fit: cover;属性,看看效果:

完美解决!真的很方便,只需要一行css

我们具体学一下object-fit

属性 描述
fill 默认值。整个对象将完全填充此框。 如果对象的高宽比不匹配其框的宽高比,那么该对象将被拉伸以适应。
contain 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加“黑边”。
cover 被替换的内容大小保持其宽高比,同时填充元素的整个内容框。 如果对象的宽高比与盒子的宽高比不匹配,该对象将被剪裁以适应。
none 内容尺寸不会被改变。
scale-down 内容的尺寸就像是指定了none或contain,默认应用尺寸最小的值

我们用一张图片作为例子解析以上上面各个属性:

//html<div><img src="./public/test.jpg" class="initImg"/> <p>图片初始化</p>
</div><div><img src="./public/test.jpg" class="initImg fillImg"/> <p>object-fit:fill</p>
</div><div><img src="./public/test.jpg" class="initImg containImg"/> <p>object-fit:contain</p>
</div>
</br><div><img src="./public/test.jpg" class="initImg coverImg"/> <p>object-fit:cover</p>
</div><div><img src="./public/test.jpg" class="initImg noneImg"/> <p>object-fit:none</p>
</div><div><img src="./public/test.jpg" class="initImg scaleDownImg"/> <p>object-fit:scale-down</p>
</div>//css
body div{display: inline-block;text-align: center;
}
.initImg{width: 150px;height: 80px;
}
.fillImg{object-fit: fill;
}
.containImg{object-fit: contain;
}
.coverImg{object-fit: cover;
}
.noneImg{object-fit: none;
}
.scaleDownImg{object-fit: scale-down;
}

这里稍微解释一下:

  1. fill: 默认值,和未设置一样。会将图片压缩拉伸
  2. contain: 当宽/高的值达到父容器规定的最小宽/高时,则对应的另一个值会按照原始宽高比进行生成。例如上面,图片的高度达到父容器高度后,宽度按照比例生成,导致左右留白
  3. cover: 和contain不一样,cover是以最大值为规定的。例如上图,图片的高度(较小值)首先达到父容器高度后,而宽度并未达到父容器的宽度,图片会继续'生长',直到宽度达到和父容器宽度一致。而等比伸缩的高度会溢出,溢出部分裁剪
  4. none: 顾名思义宽高对图片不起作用,即使设置了固定的宽高,图片仍然以原始大小展现,但是超出设置的值会被遮挡
  5. scale-down: 以containnone图片最小尺寸为标准.

以上就是object-fit的全部用法。

很简单,但是很强大

当然,也可以用background-size解决图片伸缩问题

例如淘宝网:

当从文章提取的图片和文章list的展示块尺寸比例不一致的时候,背景图可通过指定 background-size:contain | cover 来避免对图片造成的压缩或者拉伸。

css解决 多张图片如何统一大小 且没拉伸问题相关推荐

  1. 网页html 图片横向摆放,css实现多张图片横向居中显示的方法

    先讲一下实现的步骤: 最终效果 2. 代码实现 HTML部分 分类小贴士 CSS部分 .main{ width:100%; margin-top:40px; } .main .tag{ margin: ...

  2. Word中调节图片统一大小

    在word中调节图片的统一大小方法: 1.我们先调节好一张图片的大小: 2.选中其他图片,按F4快捷键即可统一图片大小.

  3. 多张图片怎么统一修改尺寸?

    在我们的日常工作中,我们经常会用到各种各样的图片,但是不同渠道获取的图片大小也是不同的. 为了让排序更方便,我们一般都会将图片的大小调整为统一大小.如果图片少,可以手动完成. 修改图片尺寸对于很多小火 ...

  4. html表格内容溢出隐藏,溢出隐藏:最全的利用css解决内容溢出问题的几种方案...

    在p布局中,有的文字内容多了会超过溢出我们限制的高度,有的图片会撑破DIV,让网页错位变乱.内容溢出了容器,超出了容器所限定的宽度和高度应该怎么办呢?可以将文本溢出部分进行隐藏或者用省略号代替,那具体 ...

  5. ireport如何给static text加边框_html amp;amp; css 解决li浮动边框为2的问题

    html && css 解决li浮动边框为2的问题 思路 问题:首先,li 浮动后,添加边框,则 中间 li 的边框会形成 1+1=2 的效果,1px的边框会变成2px.(例:分页模块 ...

  6. CSS 解决td里面内容太多把表格弄变形的原因,设置 自动换行。

    CSS 解决<td>里面内容太多把表格弄变形的原因,设置 自动换行. 1 < style="word-break:break-all"> 例如div宽200 ...

  7. CSS - 解决placeholder不起作用的方法

    CSS - 解决placeholder不起作用的方法 参考文章: (1)CSS - 解决placeholder不起作用的方法 (2)https://www.cnblogs.com/500m/p/115 ...

  8. css 解决fixed 布局下不能滚动的问题

    css 解决fixed 布局下不能滚动的问题 参考文章: (1)css 解决fixed 布局下不能滚动的问题 (2)https://www.cnblogs.com/fuzitu/p/9473508.h ...

  9. CSS解决高度自适应问题

    CSS解决高度自适应问题 参考文章: (1)CSS解决高度自适应问题 (2)https://www.cnblogs.com/zhujl/archive/2012/03/20/2408976.html ...

最新文章

  1. 海量数据处理:BitMap
  2. Linux系统编程--3(exec 函数族,僵尸进程和孤儿进程,wait和wait_pid回收子进程)
  3. 浅析php学习的路线图
  4. linux用grep查找包含两个关键字的命令
  5. [译] 正确实现 linkedPurchaseToken 以避免重复订阅
  6. 位置采集[置顶] iPhone手机上的GPS位置信息采集与分享应用
  7. # 遍历结构体_关于二叉树怎样建立和四种遍历方法你知道吗?
  8. 利用Onionshare 共享匿名文件
  9. 如何在C#中读写INI文件
  10. python生成wifi字典_python生成密码字典的方法
  11. 哪个手机浏览器支持html5,四大手机浏览器HTML5兼容性横评
  12. 雷云云服务器文件夹,配置文件云存储 雷蛇Synapse2.0_雷蛇鼠标_键鼠评测-中关村在线...
  13. 群星闪耀 视觉科技史上引领我们前进的不朽瞬间
  14. 宅男福利!爬虫实战,爬取原神真人c图片并保存,谁的老婆快抱走
  15. 华为机试4.20:按照路径替换二叉树
  16. stl C++文件读写
  17. BZOJ 4544: 椭圆上的整点
  18. 利用python实现3种梯度下降算法
  19. excel仪表盘_免费的Excel仪表板工具
  20. shell 文件连接

热门文章

  1. 自从被国家认定为新时代的农民工过后,国家又不让我 996 了.
  2. MongoDB数据迁移之迁移工具Kettle
  3. 网络安全专业的就业方向有哪些?
  4. 语音识别-人工智能实验室旗下语音识别频道,汇集最新最全的语音识别新闻及资讯,让您掌握语音识别第一手的资讯-中国人工智能网-Powered by www.AiLab.cn
  5. Date类型接收空字符串(@InitBinder注解实现)
  6. MySQL数据库中插入图片
  7. 防止360浏览器小窗下载视频
  8. Windows11 运行安卓子系统 教程
  9. 几个销售术语,折扣、回扣等
  10. 降龙十八掌-程序员篇