Javascript 使用jQuery垂直居中显示内容

Javascript 使用jQuery垂直居中显示内容,javascript,jquery,internet-explorer,center,Javascript,Jquery,Internet Explorer,Center,我正试图用jQuery来集中我的全部内容。我尝试了多种已发布的解决方案,但都没有可用性。我的主要问题是它需要与IE6到IE8一起工作 以下是链接: 应该有用 $(function() { var $inner = $('#container'); $inner.css({ marginTop: ($(window).height() / 2) - $inner.outerHeight() / 2 }); }); 应该有用 $(function() { var $in

我正试图用jQuery来集中我的全部内容。我尝试了多种已发布的解决方案,但都没有可用性。我的主要问题是它需要与IE6到IE8一起工作

以下是链接:

应该有用

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

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

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

    $inner.css({ marginTop:  ($(window).height() / 2) - $inner.outerHeight() / 2 });
});
这将计算并设置一次正确的边距上限值。如果要在有人调整浏览器窗口大小时更新该代码,还需要在
窗口
对象上的
调整大小
事件中调用该代码。像

$(function() {
    var $inner = $('#container');
    $(window).on('resize', function() {
        $inner.css({ marginTop:  ($(window).height() / 2) - $inner.outerHeight() / 2 });
    });
});
这将计算并设置一次正确的边距上限值。如果要在有人调整浏览器窗口大小时更新该代码,还需要在
窗口
对象上的
调整大小
事件中调用该代码。像

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

您不需要jQuery来实现这一点

使用CSS

将此用于容器类

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

你不需要jQuery

使用CSS

将此用于容器类

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

使用css的效果并不准确。例如,如果
#container
的高度发生变化,则您需要始终手动调整该
top
值。从技术上讲,该值不居中,并且在调整浏览器大小时也不正确居中。在您的屏幕截图中,您可以看到左侧有更多的空间。使用css只能起到不那么准确的作用。例如,如果
#container
的高度发生变化,则您需要始终手动调整该
top
值。从技术上讲,该值不居中,并且在调整浏览器大小时也不正确居中。在你的截图中,你可以看到左边有更多的空间。由于某些原因,它甚至没有起作用。@ChristopherBurton:如果我只是在你的网站上应用这些代码,对我来说效果很好。当我在控制台中插入代码时,它会起作用,但当我将代码添加到head部分时,它就不会起作用。@ChristopherBurton:你可能需要将其放入
.ready()
回调中,我会更新代码段。实际上,我说得太快了。它只在我调整浏览器大小时起作用。嗯。由于某些原因,它甚至没有起作用。@ChristopherBurton:如果我只是在你的网站上应用这些代码,对我来说效果很好。当我在控制台中插入代码时,它会起作用,但当我将代码添加到head部分时,它就不会起作用。@ChristopherBurton:你可能需要将其放入
.ready()
回调中,我会更新代码段。实际上,我说得太快了。它只在我调整浏览器大小时起作用。