如何在div中垂直和水平居中图像

时间:2013-10-26 10:11:56

标签: html css

如何将图像的位置设置在div的中心(垂直和水平)。我可以将它水平居中,但如何将其垂直居中?

N.B:图像的高度和宽度可能会发生变化。

HTML:

{% for photo in photos %}
<div class="thumbnail_container">
    <a class='gallery' href='{{MEDIA_URL}}{{photo.image}}'><img src="{{MEDIA_URL}}{{photo.image}}" class="thumbnail"></a>
</div>
{% endfor %}
<span class="clear_left"></span>

的CSS:

.thumbnail_container {
    background-color: white;
    border: 1px solid red;
    width: 250px;
    height: 200px;
    float: left;
    margin: 5px;
}

.thumbnail {
    display: block;
    margin-left: auto;
    margin-right: auto;
    border: 1px solid red;
    max-width: 240px;
    max-height: 190px;
}

任何帮助将不胜感激!感谢。

3 个答案:

答案 0 :(得分:3)

尝试制作这样的父容器CSS:

  display:table-cell;
  vertical-align:middle;

试试这堂课:

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

Try jsfiddle

答案 1 :(得分:0)

.thumbnail_container
{
    border:2px solid red;
    height:400px;
    width:500px;
    text-align:center;
}
a img
{
    margin-top:15%;
}

Live Demo

答案 2 :(得分:0)

使用可以使用transform来做这个技巧,它总是在中心

.thumbnail_container {
  position: relative;
  width: 200px;
  height: 200px;
  border: 1px solid #444;
}

.thumbnail {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

Demo

编辑:

将此作为后备添加到单独的css文件中,以便IE希望支持它

.thumbnail {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80px;
  height: 80px;
  margin-left: -40px; /* 80px/2 */
  margin-top: -40px;

}

您可以在html文件中以这种方式定位IE,并在ie.css

中添加您的CSS
<!--[if lt IE 9]>
    <link rel="stylesheet" href="ie.css">
<![endif]-->

所以ie.css将在任何低于ie9的浏览器上运行,因此我们可以在主要风格的现代浏览器中使用'translate',并且仍然支持旧版。