0

以下是代码:

var b = this;
b.children("li").each(function() {
    var c = jQuery(this).find("div:first");
    var g = c.outerWidth();
    alert(g);
}

警报语句抛出的值是每次迭代的常量值“3”,尽管它应该不同。仅在 IE8 中的错误。原因和解决方法?

4

2 回答 2

0

这不是一个错误。outerWidth返回“匹配元素集中第一个元素的当前计算宽度,包括填充和边框” [1]

只是碰巧在 IE8 中,由于呈现差异,内容的宽度与其他浏览器不同。

您可以通过为 div 指定固定宽度(例如width: 640px)来验证此行为,这将导致所有浏览器中的行为一致。有关演示,请查看:

http://jsfiddle.net/y5Uur/1/

于 2012-09-27T09:46:31.410 回答
0

默认情况下,div占据其父元素的整个宽度。所以所有的 div 都将具有相同的宽度:

示例:http: //jsfiddle.net/fwHe5/1/

现在,如果你改变它,让 div 的浮动向左并相对定位,它们不再占据整个宽度。

示例:http: //jsfiddle.net/fwHe5/2/

于 2012-09-27T09:46:49.820 回答