Alinhamento horizontal e vertical com altura dinâmica

Usando elementos de nível de bloco, como div’s para estruturar sua marcação, você pode usar css display: table && display: table-cell para fazer a marcação se comportar como uma tabela. Isso permitirá que você alinhe as imagens verticalmente de forma a ter uma altura dinâmica.

Confira o seguinte link para suporte ao navegador

Suporte do navegador
http://caniuse.com/#feat=css-table

Exemplo
http://jsfiddle.net/iancrowther/QzNpZ/