垂直对齐网格中的图像(CSS)


Vertically Align Images in Grid (CSS)

我已经纠结了一段时间了,我的客户坚持认为通过CSS手动设置图像的位置不是一个可以接受的解决方案。基本上,我试图垂直居中的父DIV(它有一个静态的高度)的图像。

我正在考虑通过PHP计算图像大小,然后为每个图像设置CSS规则,但想象一下这太复杂了。

有人可以看看这里的演示并建议一个潜在的解决方案吗?

谢谢!

你不需要在这里计算,CSS有解决方案,诀窍是使用display: table-cell;vertical-align: middle;

CSS

div {
    display: table-cell;
    height: 300px;
    border: 1px solid green;
    vertical-align: middle;
}

这是<table>元素的一个例子。这可以说是表格数据。

当您这样做时,您可以给表格单元格一个vertical-align:

table td { vertical-align: middle; }

如果你想避免使用表格样式,你可以这样做:

div {
    height: 300px;
    line-height: 300px;
}
div img {
    vertical-align: middle;
}
http://jsfiddle.net/x5j43o08/11/