div里面一个img标签的不变形、不超出、上下左右居中的解决办法
这段时间做一个比较简单的小项目,当中有一个图片展示的页面,当我把数据图片展示到前端的时候,发现前端小姐姐写的css样式有点小小的问题,就是我从后台返回到前端的图片,有的长,有的宽,大小不一,这里列举两张图片,一张长,一张宽:
原本的样式就是无解皮皮虾固定长宽,就导致图片成了这样:
很明显,变形了。
因此,首先让它不变形,
代码(这样就可以同时满足长和宽都不超出边框):
div{
width:650px;
height:500px
}
img{
max-width: 100%;
max-height: 100%;
}
ok,然后就变成了这样:
很明显,上下没有居中,有人说,可以给img加上:
vertical-align:middle;
text-align:center;
dispaly:block;
margin:0 auto;
图片设为背景,然后:background-position:center;
等一系列方法。。。
但是~我试了都不行(各个页面情况不同,小伙伴们也可以试试上面的方法)
然后我最后用这种办法给它搞居中了:
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
最终代码:
div{
width:650px;
height:500px
}
img{
max-width: 100%;
max-height: 100%;
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
ok~下面是最终效果:
解决战斗~
网上很多让图片按长缩放和按宽缩放的办法,但是大多只考虑了一种情况,
我经过多次试验,发现这种办法确实可以解决我的此次需求。
现在分享出来,供大家参考~