您的位置:首页 > Web前端 > CSS

图片垂直居中的5种css方法

2016-09-09 23:32 393 查看

图片垂直居中的css方法

今天我要介绍的是采用css进行图片居中的5个方法。首先确定我们的HTML结构(若不特别说明,下面皆采用该HTML结构)

<div class="vertical-center">
<img src="1.jpg" alt="StarXY">
</div>


1.此方法会在img标签前加上一个inline-block的span标签,并给两个标签都设置vertical-align: middle。 HTML代码更改为:

<div class="vertical-center">
<span></span><img src="1.jpg" alt="StarXY">
</div>


css代码为:

body {
font-family: "Microsoft YaHei";
font-size: 14px;
padding: 0;
margin: 0;
}

.vertical-center {
width: 200px;
height: 200px;
text-align: center;
border: 1px solid #ff4500;
}
/*
使用 .vertical-center:before会有2px的像素差,原因不明
*/
.vertical-center span{
display: inline-block;
width: 0;
height: 100%;
font-size: 0;
vertical-align: middle;
}

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


2.给img元素加上绝对定位,并设置margin负值。

body{
padding: 0;
margin: 0;
}
.vertical-center{
position: relative;
width: 200px;
height: 200px;
border: 1px solid #ff4500;
}
.vertical-center img{
position: absolute;
left: 50%;
top: 50%;
width: 160px;
height: 160px;
margin: -80px 0 0 -80px;
}


3.img元素绝对定位,并设置left, right, top, bottom为0。

body{
padding: 0;
margin: 0;
}
.vertical-center{
position: relative;
width: 200px;
height: 200px;
border: 1px solid #ff4500;
}
.vertical-center img{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}


4.div类型为table-cell,并设置vertical-align: middle

body{
padding: 0;
margin: 0;
}
.vertical-center{
display: table-cell;
width: 200px;
height: 200px;
text-align: center;
vertical-align: middle;
border: 1px solid #ff4500;
}


5.对img使用css3属性tranform: translate(-50%, -50%)

body{
padding: 0;
margin: 0;
}
.vertical-center{
width: 200px;
height: 200px;
border: 1px solid #ff4500;
}
.vertical-center img{
position: relative;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}


最终效果图如下:



以上五种方法,性能各有优劣。第一种和最后一种性能最优,第二三四种因为采用了绝对定位或者table-cell对性能消耗较大,不建议采用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  css html