Web: Выравнивание div по центру

В Интернете полно информации по выравниванию div’а по центру с помощью CSS, однако я не нашёл способов, которые бы всегда работали. Решил написать свой, получился плагин для jQuery.

Использование

$('#mydiv').center();

Параметры

parent - относительно чего будет выравниваться элемент(пример: 'body', '#middle').
position - присваиваемая позиция, по умолчанию absolute
options - тип выравнивания: 'all', 'height', 'width', по умолчанию - 'all'

Код

(function($){
	$.fn.center = function(parent, position, options) {
		return this.each(function () {
			var self = $(this);
			self.css('position', (position != null) ? position : 'absolute');
 
			if (parent == null)
			{
				width = self.parent().outerWidth();
				height = self.parent().outerHeight();
			}
			else
			{
				width = $(parent).outerWidth();
				height = $(parent).outerHeight();
			}
 
			if (self.parent().is('body') || parent == 'body') {
				width = $(window).outerWidth();
				height = $(window).outerHeight();
			}
 
			dwidth = self.outerWidth();
			dheight = self.outerHeight();
 
			if (options == 'width' || options == 'all' || options == null) {
				self.css('left', (width - dwidth) / 2);
			}
 
			if (options == 'height' || options == 'all' || options == null) {
				self.css('top', (height - dheight) / 2);
			}
		});
	};
})(jQuery);
Перейти к верхней панели