2010-09-06 49 views
1

我與jQuery(1.4.2)和鉻問題6jQuery的保證金問題6

margin-left:auto 
margin-right:auto 

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

都返回一個值PX(例如:327px)

+0

問題是? – balexandre 2010-09-06 07:11:59

+0

其他瀏覽器下一次返回「自動」(FF,IE,Opera) – StoneHeart 2010-09-06 07:12:53

+1

,再做點什麼,比如http://jsbin.com/uhuta3,這樣我們可以更好地幫助你,不要我們做任何事情,給我們所有你可以得到一個快速和尖銳的答案 – balexandre 2010-09-06 07:29:36

回答

2

這是因爲當指定頁邊距: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

SMNH解答下jQuery position page


記住,你可以使用.position().offset()

有尺寸更多的控制權
$(id).position().left 

還是你真的想要MarginLeft

+0

我需要獲得邊距值以在元素周圍繪製邊距框。有其他方法來計算它嗎? – StoneHeart 2010-09-06 07:35:23

+0

你有元素尺寸(大小)和偏移量(來自邊界),這很容易做到! – balexandre 2010-09-06 13:00:50