如果你需要使用 img 标签,又不想用背景图片弄乱 div,你可以试试这个方法:
http://jsfiddle.net/Nz6Nm/3/
.container
{
width: 180px;
height: 180px;
background-color: #FF0000;
line-height: 180px;
font-size: 0;
text-align: center;
}
.container img {
vertical-align: middle;
}
font-size 设置为 0 以避免奇怪的间距。让 line-height 等于容器的高度,会导致 vertical-align 作为垂直中心,至少对于图像来说。
这样做的好处是您可以将图像放入 img 标签中,这在语义上比背景图像更令人愉悦。当您具有已知的容器大小,但您希望在其中居中的图像大小未知时,此方法有效。
编辑: 这是另一个小提琴的链接:http: //jsfiddle.net/Nz6Nm/4/
您提到可能需要在图像上方放置文本,所以我只是想展示一种快速的方法。这种方式在顶部增加了 20px。如果您需要坚持使用 180 x 180,那么您可以调整逻辑以适应。</p>