以下是代码:
var b = this;
b.children("li").each(function() {
var c = jQuery(this).find("div:first");
var g = c.outerWidth();
alert(g);
}
警告语句抛出的值是每次迭代的常量值“3”,尽管它应该是不同的。仅在IE8中出现错误。原因和任何修复?
答案 0 :(得分:0)
这不是一个错误。 outerWidth
返回“匹配元素集合中第一个元素的当前计算宽度,包括填充和边框”[1]。
恰好在IE8中,由于渲染差异,内容的宽度与其他浏览器的宽度不同。
您可以通过为div指定固定宽度(例如width: 640px
)来验证此行为,这将导致所有浏览器中的行为一致。有关演示,请查看:
答案 1 :(得分:0)
默认情况下,div
占用其父元素的整个宽度。所以所有的div都有相同的宽度:
示例:http://jsfiddle.net/fwHe5/1/
现在,如果你改变它以使div的浮动离开并且相对定位,它们就不再占据整个宽度。