Если у div есть известная ширина и высота, вы можете использовать отрицательное поле:
div {
position: absolute;
width: 800px;
height: 500px;
left: 50%;
top: 50%;
margin-top: -250px;
margin-left: -400px;
}
Обратите внимание, что отрицательные поля составляют половину ширины и высоты.
Если размер div неизвестен или изменчив, вы должны использовать JavaScript. Вот как заставить это работать, используя jQuery:
$(function() {
$(window).resize(function() {
$('div.something').css({
left: $(window).width() - ($(this).width() / 2),
top: $(window).height() - ($(this).height() / 2)
});
});
$(window).resize();
});