2012-10-02 3 views
0

Я пытаюсь сосредоточить все свое содержание на jQuery. Я пробовал несколько решений, которые были опубликованы, но недоступны. Моя главная проблема заключается в том, что он должен работать с IE6 через IE8.Вертикально содержимое центра с помощью jQuery

Вот ссылка: http://christopherburton.net/ie

ответ

2
$(function() { 
    var $inner = $('#container'); 

    $inner.css({ marginTop: ($(window).height()/2) - $inner.outerHeight()/2 }); 
}); 

Это было бы вычислить и установить правильное значение маржи-топ раз. Если вы хотите обновить это, когда кто-то изменит размер окна браузера, вам необходимо вызвать этот код в событии resize на объекте window. Как

$(function() { 
    var $inner = $('#container'); 
    $(window).on('resize', function() { 
     $inner.css({ marginTop: ($(window).height()/2) - $inner.outerHeight()/2 }); 
    }); 
}); 
+0

Мда. По какой-то причине это даже не влияет. –

+0

@ChristopherBurton: хорошо работает для меня, если я просто применил этот код на вашем сайте. – jAndy

+0

Он работает, когда я вставляю код в консоль, но не добавляю его в раздел главы. –

1
$("elem").css({ 
    position: "absolute", 
    top: "50%", 
    marginTop: "-" + $("elem").height()/2 + "px" 
}); 

Должно работать.

0

Вам не нужно JQuery для этого ..

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

Используйте это для контейнерного класса

#container { 
position: absolute; 
width: 525px; 
height: 220px; 
margin: 0 auto; 
left: 35%; 
top: 30%; 
} 

Check this after adding these styles

+0

использование css только работает не такой точный. Если, например, '# container' изменяется в высоту, вам нужно вручную адаптировать значение' top' все время. – jAndy

+0

Это технически не центрировано, и при изменении размера браузера оно не центрируется. На скриншоте вы видите, что на левой стороне больше места. –

Смежные вопросы