一、img与父级底部会出现空隙
想必大家都遇到过这种情况,这种现象会出现在img与文字有共同父级且渲染在同一行的时候。
html:
<body>
<div class="content">
<img class="content__img"src="../images/gaoqiqiang.jpg" alt="">
我想吃鱼了
</div>
</body>
css:
.content{
width: 600px;
&__img{
width: 100px;
height: 100px;
}
}
我们会发现图片与底部会有空隙,这是因为图片没有基线,默认设置的vertical-align: baseline
会导致图片的底部与父级的基线对齐,所以与父级底部就会有空隙。
基线如图所示:
如何解决
- 设置
vertical-align: bottom 或 middle
或者支持vertical-align
的其他属性。
- 引文基线是基于
line-height
的,所以将line-height
的值设为足够小,也会使得图片与底部没有空隙,但会导致文字超出边框。
- 父级使用flex弹性布局或者图片使用浮动布局都可以解决此问题。
二、img设置固定宽高会拉伸变形
试想这种情况,当图片需要作为头像使用且有固定宽高时,如果我们设置为固定的宽高会导致图片压缩变形。
css:
&__img{
width: 80px;
height: 100px;
}
如何解决
其中一种比较好的解决方法是将css属性object-fit和object-position配合使用,我们可以设置object-fit:cover
并使用object-position
调整位置。
css:
&__img{
float: left;
width: 80px;
height: 100px;
object-fit: cover;
object-position: left bottom;
}
这样不会导致图片的拉伸或压缩,可以较好的展现需要设置固定宽高的情况。