2013-05-09 54 views
2

我在頁面中有一個div。 現在,當我指定它的位置爲絕對,並給出其餘量== 20px:CSS:保證金右邊和絕對定位

我明白這一點。 div元素應該向右移動20px,以便div和body之間存在20px的邊距。

現在,當我從右側提供20px的邊距時,不應該讓整個div向右側移動,距離身體20px。

http://jsfiddle.net/2Jfpj/

.container{ 
position: absolute; 
background-color:gray; 
margin-right: 50px; 
height: 200px; 
} 

我知道我可以定位DIV給人的左邊和右邊的值。但真正的問題是保證金仍然有效,但保證金不正確!爲什麼這樣? 幫助感謝!

+1

爲什麼不只是使用'left'和'right'而不是margin? – Pete 2013-05-09 13:58:24

+0

@Pete但是,爲什麼當margin-left正在工作時,margin-right在這裏工作? – 2013-05-09 14:03:05

+1

看看接受的答案:http://stackoverflow.com/questions/9998260/css-absolute-position-wont-work-with-margin-leftauto-margin-right-auto – Pete 2013-05-09 14:07:56

回答

3

它不是margin-right你正在尋找它只是right

請從我的小提琴更新,請參閱: JSFIDDLE right

如果你希望它在屏幕的底部坐在添加bottom

試試更新提琴:JSFIDDLE bottom

Margin-right不起作用,因爲它將margin添加到div區本身,而right是一個位置值。

如果你看看box model它會顯示你的邊界被添加到哪裏。所以Margin實際上是用來給它周圍的其他對象提供框空間。

+0

我明白了。感謝您的幫助 – 2013-05-09 14:00:37

+0

@NavneetSaini右邊距移動距離它20px遠的元素,邊距只是將元素推開,如果您希望它位於右側而絕對必須使用正確,否則浮動:權利; – 2013-05-09 14:04:05

0

margin-left works因爲默認情況下該框與左側對齊:;屬性。設置正確的:;財產比你可以設置一個正確的邊際。但到目前爲止,我只能在絕對定位的元素上設置左邊界或右邊界。因此,您只需使用左側或右側,就不需要利潤空間。如果您想知道如何同時設置左右頁邊距,請發帖!