Просто ради правильного ответа я все еще хочу опубликовать решение jQuery еще раз.Это работает для каждого элемента, к которому применен класс v_align
.Он будет центрирован по вертикали в родительском элементе и при изменении размера окна будет пересчитан.
Ссылка на JSFiddle
$(document).ready(function() {
// Define the class that vertically aligns stuff
var objects = '.v_align';
// initial setup
verticalAlign(objects);
// Register resize event listener
$(window).resize(function() {
verticalAlign(objects);
});
});
function verticalAlign(selector) {
$(selector).each(function(val) {
var parent_height = $(this).parent().height();
var dif = parent_height - $(this).height()
// Should only work if the parent is larger than the element
var margin_top = dif > 0 ? dif/2 : 0;
$(this).css("margin-top", margin_top + "px");
});
}