让大小不定的图片水平垂直居中

2018-10-02  本文已影响0人  洛桃桃

实现大小不定图片的水平、垂直居中方案。

效果

效果

方法

html结构如下:

<ul class="wrap">
    <li><img src="https://dummyimage.com/300x200/333/EEE.png"></li>
    <li><img src="https://dummyimage.com/100x200/ff5566/EEE.png"></li>
    <li><img src="https://dummyimage.com/200x150/333/EEE.png"></li>
    <li><img src="https://dummyimage.com/100x100/fe56ed/EEE.png"></li>
    <li><img src="https://dummyimage.com/50x200/5e66ed/EEE.png"></li>   
</ul>

法一:仿单行文字居中

li {
  display: inline-block;
  width: 300px;
  height: 300px;
  text-align: center;
  line-height: 300px;
}

img {
  vertical-align: middle;
}

法二(推荐):display: table-cell;

li {
    display: table-cell;
    width: 300px;
    height: 300px;
    text-align: center;
    vertical-align: middle;
}

法三:position + transfrom

li {
    position: relative;
    width: 300px;
    height: 300px;
}

img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

法四(推荐):flex布局

li {
    display: flex;
    width: 300px;
    height: 300px;
    justify-content: center;
    align-items: center;
}

法五:背景定位

html结构变更为:

<ul class="wrap">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
li {
    width: 300px;
    height: 300px;
    background-position: center center;
    background-repeat: no-repeat;
}

li:nth-child(1) {
    background-image: url(https://dummyimage.com/300x200/333/EEE.png);
}

li:nth-child(2) {
    background-image: url(https://dummyimage.com/100x200/ff5566/EEE.png);
}

li:nth-child(3) {
    background-image: url(https://dummyimage.com/200x150/333/EEE.png);
}

li:nth-child(4) {
    background-image: url(https://dummyimage.com/100x100/fe56ed/EEE.png);
}

li:nth-child(5) {
    background-image: url(https://dummyimage.com/50x200/5e66ed/EEE.png);
}

参考

上一篇 下一篇

猜你喜欢

热点阅读