Table of Contents
很多时候都需要用到图片居中,这里简单记录一下。
JavaScript 方法
获取图片宽高进行计算。
CSS 方法
<style>
.box {
width: 100px;
height: 100px;
display: table-cell;
vertical-align: middle;
border: 1px solid gray;
}
.box img {
max-width: 100%;
max-height: 100%;
vertical-align: middle;
}
</style>
或者:
<style>
.box {
width: 100px;
height: 100px;
text-align: center;
border: 1px solid gray;
}
.box img {
max-width: 100%;
max-height: 100%;
margin-top: 50%;
transform: translateY(-50%);
}
</style>
IE 兼容
在 ie 下面,图片的 max-width 或 max-height 会有问题。浏览器会根据图片的宽高调整父元素的宽高,之后再设置图片的宽高,结果就是 max-width 和 max-height 是相对于图片本身的大小,而不是父盒子。目前 ie11 的解决方法是给父盒子也设置 max-width 和 max-height ,值就是父盒子的宽高。
<style>
.box {
width: 100px;
height: 100px;
max-width: 100px;
max-height: 100px;
text-align: center;
border: 1px solid gray;
}
.box img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
margin-top: 50%;
transform: translateY(-50%);
}
</style>
或者直接添加 line-height 属性。
ie10 按照上面的设置会出现图片无法等比显示的问题。
文章最初发布在简书,时间为 2018.07.01 22:31。