在需要展示多张图片的时候,图片大小有时候可能会不一样,一般设置图片宽度自适应,那么高度就会根据图片本身的宽高比等比缩放,那么问题来了,多张图片的宽高比可能本身并不相同,那么造成图片宽度一样,高度不一样,显示不好看,不协调。
如下:
![](https://img.haomeiwen.com/i4242443/82be9b9968a9783c.png)
为了避免变形,我们可以使用css中object-fit属性
实现代码
html部分
<div class="test_img">
<img src="../assets/images/img1.jpg" alt="">
</div>
<div class="test_img">
<img src="../assets/images/img2.jpg" alt="">
</div>
<div class="test_img">
<img src="../assets/images/img3.jpg" alt="">
</div>
css部分
.test_img{
width: 200px;
height: 100px;
border: 1px solid #000;
margin-top: 5px;
img{
width:100%;
height: 100%;
object-fit:cover;
}
}
注意:只是简单的用pc做了个demo,如果是移动端话,单位推荐使用rem。
![](https://img.haomeiwen.com/i4242443/9170f474fb3467b5.png)
object-fit属性详解
语法
object-fit 属性由下列的值中的单独一个关键字来指定。
取值
contain
被替换的内容将被缩放,以在填充元素的内容框时保持其宽高比。 整个对象在填充盒子的同时保留其长宽比,因此如果宽高比与框的宽高比不匹配,该对象将被添加‘黑边’
cover
被替换的内容在保持其宽高比的同时填充元素的整个内容框。如果对象的宽高比与内容框不相匹配,该对象将被剪裁以适应内容框。
fill
被替换的内容正好填充元素的内容框。整个对象将完全填充此框。如果对象的宽高比与内容框不相匹配,那么该对象将被拉伸以适应内容框。
none
被替换的内容将保持其原有的尺寸。
scale-down
内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。
网友评论