Chrome和Firefox错误上的窗口宽度



我有以下代码:

function c() {
        var h = ($(window).height() - $('#maincontainer').outerHeight()) / 2;
        var w = ($(window).width() - $('#maincontainer').outerWidth()) / 2;
        $('#maincontainer').css('position', 'absolute');
        $('#maincontainer').css('top', h);
        $('#maincontainer').css('left', w);
    }
    $(window).resize(c);
    $(window).load(c);

resize事件在我尝试过的每个浏览器上正常工作,但是load始终返回8px的宽度值,将maincontainer DIV放在屏幕的左边框上。这只能在IE8上的窗口中正确执行DIV,在Chrome 22和Firefox 16上失败。

编辑:似乎有效的解决方案:

    $(window).ready(c);
    $(window).load(c);
    $(window).resize(c);

另外,the body应该具有width: 100%

而不是:

$(window).resize(c);
$(window).load(c);

做:

$(function(){
    c();
    $(window).resize(c);
});

发生的事情是,您要在加载任何内容之前要求文档的大小,因此您几乎没有得到任何内容。一旦文档"准备就绪",就可以做到这一点。

您可能还需要使身体100%和高度使您的身体并使用该尺寸而不是窗户。

最新更新