原文链接:https://www.cnblogs.com/lyt0207/p/13048997.html
# 问题描述
在做项目的时候经常遇到这样一个问题,就是一张图片宽度100%在缩放屏幕的时候图片会被压缩变形!!!如下:
## 在大屏幕上:
![](https://img2020.cnblogs.com/blog/1843694/202006/1843694-20200605120403553-1720952423.png)
## 在小屏幕上:
![](https://img2020.cnblogs.com/blog/1843694/202006/1843694-20200605120313698-1511442717.png)
小屏幕上压缩变形,很丑陋,给人一种很不专业的感觉的。
# 解决办法:
为了避免变形,我们可以使用css中object-fit属性
## html:
```
<div class="swiper-slide">
<img src="images/background@3x.png" alt="">
</div>
<div class="swiper-slide">
<img src="images/IMG_3393.JPG" alt="">
</div>
<div class="swiper-slide">
<img src="images/99.jpg" alt="">
</div>
```
## css:
```
.swiper-slide {
width: 100%;
height: 500px;
}
.swiper-slide img{
width: 100%;
height: 100%;
object-fit:cover;
}
```
# object-fit属性详解
## 语法
object-fit 属性由下列的值中的单独一个关键字来指定。
## 取值
### contain
被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加‘黑边’
### cover
被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。
### fill
被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。
### none
被替换的内容将保持其原有的尺寸。
### scale-down
内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。
------------
不积跬步无以至千里