铬6的jquery边缘问题

时间:2010-09-06 07:04:51

标签: jquery css google-chrome

我遇到了jquery(1.4.2)和chrome 6

的问题
margin-left:auto
margin-right:auto

$(id).css('margin-left');
$(id).css('margin-right');

都返回px值(例如:327px)

1 个答案:

答案 0 :(得分:2)

  

这是因为当指定margin:auto时,Chrome(以及Safari,因为它们都使用WebKit)将margin-left和margin-right的计算值设置为相等大小的使用值。

     

虽然Firefox和IE将margin-left和margin-right的计算值设置为0px。因此,如果您有一个1000px宽的页面,并且您的元素占用50%宽度(即:500px)并且具有margin:auto,那么Chrome会将元素的margin-left和margin-right的计算值设置为250px(因此它将填充所有空元素的边界边缘与其父元素的内容边缘之间的空间,边距和边缘元素的水平居中。

     

但是,Firefox和IE会将margin-left和margin-right的计算值设置为0px,因此元素的边界边缘与其父元素的内容边缘之间没有边距,但它仍然居中。实际上,您可以使用Firefox中的Firebug和Chrome中的开发者工具来查看它。深入解释可以在这里找到:

     

http://www.3d3r.com/simon/marginAutoComputedValue

来自jQuery position page

smnh


请记住,您可以使用.position().offset()

对维度进行更多控制
$(id).position().left

或者你真的想要MarginLeft吗?