列中的垂直居中图像

时间:2013-03-16 19:34:45

标签: html css

我的HTML页面中有两列。

<div id="content">
  <div id="left"></div>
  <div id="right"></div>
</div>

每个占据页面的一半

#left {
    float: left;
    width: 50%;
}

#right {
    float: left;
    width: 50%;
}

我想在右栏中居图片。我知道我可以通过margin-left: auto; margin-right: auto;使其水平居中。如何使其垂直居中?

3 个答案:

答案 0 :(得分:1)

我看到的第一个问题是没有为leftright div的高度指定高度;高度应设置为100%或您喜欢的任何值。要使图像垂直居中,我们可以使用绝对定位。我们将设置图像的尺寸(这在任何情况下都是很好的做法),然后设置top:50%left:50%属性。这会将图像推到盒子外面,所以我们添加的负边距是图像宽度和高度的一半。这将在每次div 中垂直和水平对齐图像

这是更新后的CSS:

#left, #right {
width: 50%;
height:100%;
float:left;
position:relative;
}
#right img {
position: absolute;
top: 50%;
left: 50%;
width: 80%;
height: 80%;
margin-top: -40%; /* Half the height */
margin-left: -40%; /* Half the width */
}

看看这个JSFiddle:http://jsfiddle.net/bYF7F/2/

答案 1 :(得分:0)

我知道这个问题已被标记为已回答,但您确实提到图像的高度和宽度并不理想。所以我想建议另一个解决方案。

添加:

display: -webkit-flex;
display: flex;

到正确的div,并且:

margin: auto;

到图像。我认为这就是你所追求的。请参阅小提琴http://jsfiddle.net/Fqa7b/

答案 2 :(得分:-2)

如果使用TABLE而不是DIV,它将自动居中。