JQuery width()未返回正确的值

JQuery width()未返回正确的值,jquery,css,Jquery,Css,我有一个div,它在css中没有预设宽度,我正试图用JQuery在屏幕上居中,它在Chrome、Firefox和IE8+中工作,但在IE7中不工作。为什么? css: .productBoxWrapper{ height:210px; clear:both; background-color:blue; } $('#mydiv').css("position", "absolute"); this.css("left", ($(window).width() - $("

我有一个div,它在
css
中没有预设宽度,我正试图用
JQuery
在屏幕上居中,它在ChromeFirefoxIE8+中工作,但在IE7中不工作。为什么?

css:

.productBoxWrapper{
    height:210px;
    clear:both;
    background-color:blue;
}
$('#mydiv').css("position", "absolute");
this.css("left", ($(window).width() - $("#mydiv").width()) / 2 + "px");
JQuery:

.productBoxWrapper{
    height:210px;
    clear:both;
    background-color:blue;
}
$('#mydiv').css("position", "absolute");
this.css("left", ($(window).width() - $("#mydiv").width()) / 2 + "px");

JSFiddle:

试着像这样居中:

Css:

脚本:

$('#myDiv').css('marginLeft', - ( parseInt( $('#myDiv').width() ) / 2) + 'px' );
$('#myDiv').css('marginTop', - ( parseInt( $('#myDiv').height() ) / 2) + 'px' );

我不确定是否真的需要weather parseInt。

IE7很旧,不支持它。是否有带填充/边距的包含div的文件?您可能需要改为使用,以考虑填充和边框。请与@s.lenders达成一致。欢迎来到2013年-/你真的需要支持IE7吗?这只是你在支持IE7时会遇到的数百个问题和浪费的时间中的一个。谷歌去年放弃了对IE7的支持,所以在开发新网站时,不要费心让它工作。IE7很旧,在所有windows上都会自动更新为8。不到2%的用户仍然使用IE7。浪费太多时间在这件事上并不有趣