CSS3图片水平居中常用方法

外层假定高度一定

h3 {text-align: center;}

.container {width: 300px; height: 300px; margin: 20px auto; background: #00f;}

img {width: 200px; height: 200px;}

方式一:绝对定位+Margin

图片相对外层浮动,然后margin: auto

<h3 class="demo">绝对定位+Margin</h3>
<div class="container container-1">
    <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
</div>
.container-1 {position: relative;}

.container-1 img{position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto;}

方式二:Flexbox

采用的是 align-items:center(垂直居中)和justify-content:center(水平居中)这2个属性

<div class="container container-2">
    <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
</div>
.container-2 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex-box;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack:center;
    -ms-flex-pack:center;
    justify-content:center;
    text-align: center;
}

方式三:Tablecell

利用display:table-cell以及图片vertical-align:middle

<div class="container container-3">
    <span class="icenter">
        <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
    </span>
</div>
.container-3 .icenter{display: table-cell; vertical-align: middle; text-align: center; height: 300px; width: 300px;}

.container-3 img{vertical-align: middle; display: inline-block;}

最后附上demo

<!DOCTYPE html>
<html>
<head>
    <title>图片垂直居中</title>
    <style type="text/css">
        h3 {text-align: center;}
        .container {width: 300px; height: 300px; margin: 20px auto; background: #00f;}
        img {width: 200px; height: 200px;}

        .container-1 {position: relative;}
        .container-1 img{position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto;}

        .container-2 {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex-box;
            display: flex;
            -webkit-box-align: center;
            -ms-flex-align: center;
            align-items: center;
            -webkit-box-pack:center;
            -ms-flex-pack:center;
            justify-content:center;
            text-align: center;
        }

        .container-3 .icenter{display: table-cell; vertical-align: middle; text-align: center; height: 300px; width: 300px;}
        .container-3 img{vertical-align: middle; display: inline-block;}
    </style>
<body>
    <h3 class="demo">绝对定位+Margin</h3>
    <div class="container container-1">
        <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
    </div>
    <h3 class="demo">Flexbox</h3>
    <div class="container container-2">
        <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
    </div>
    <h3 class="demo">TableCell</h3>
    <div class="container container-3">
        <span class="icenter">
            <img src="http://scrm-staging-cdn.oss-cn-hangzhou.aliyuncs.com/avatar/wechat/aHR0cDovL3d4LnFsb2dvLmNuL21tb3Blbi9YeFQ5VGlhSjFpYmYzdFk4b2hENHFpYmxkTUdEbk1NRXFuZVdlZk5pY2lic1h1MjFZdHAxV1o2bGsxUTFVeE9vSzY4QVJEa0tRZ05OYWgzeTFzY01YUUp3clBRLzA=">
        </span>
    </div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值