0

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

注意:图像的高度和宽度可能会发生变化。

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;
}

任何帮助都感激不尽!谢谢。

4

3 回答 3

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;
}

试试 jsfiddle

于 2013-10-26T10:42:54.470 回答
0
.thumbnail_container
{
    border:2px solid red;
    height:400px;
    width:500px;
    text-align:center;
}
a img
{
    margin-top:15%;
}

现场演示

于 2013-10-26T10:21:32.433 回答
0

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

.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%);
}

演示

编辑:

在单独的 css 文件中将此作为后备添加到目标 IE 想要支持它

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

}

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

<!--[if lt IE 9]>
    <link rel="stylesheet" href="ie.css">
<![endif]-->

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

于 2013-10-26T11:01:31.007 回答