2013-07-17 154 views
0

我有2個div,一個是使用position:absolute和另一個是使用position:static(默認)
絕對位置由left:100px。
通過margin-left的靜態位置:100px添加額外8px到保證金

爲什麼它們不是在同一地點的位置?

where is the 8px?

+0

也許鏈接到小提琴呢? – msanford

+0

由於您發佈了使用小提琴的截圖,您可以發佈小提琴鏈接嗎?閱讀圖像文本很難。謝謝! – jmbertucci

回答

2

發佈的鏈接,小提琴將是很好的,但在那之前,你可以嘗試設置:

html, body 
{ 
    margin: 0; 
    padding: 0; 
} 

由於絕對定位div已取出文件的正常流動的,它是最有可能靜態div和絕對div的放置之間的任何不一致是由包含靜態div的元素上的marginpadding設置的。

+0

是的!你是對的,8px是由身體添加。由於絕對的原因,「絕對」的位置可以毫無問題地定位它。但「靜態」位置受身體邊緣的影響。順便說一下,爲什麼身體總是將這8px添加到邊距?是瀏覽器問題嗎?我使用Chrome,確定我會在稍後嘗試ie和Firefox。 –

+0

在大多數瀏覽器中它是'8px',它由用戶代理樣式表設置,[你可以在這裏閱讀它們](http://meiert.com/en/blog/20070922/user-agent-style-sheets /),您可以通過添加重置樣式表來覆蓋這些樣式表(但這也會覆蓋很多其他默認樣式)。我上面發佈的片段僅重置了'html'和'body'的邊距和填充。 –

0

你確定這不是2px的邊框寬度一路走去(加起來)總8像素?

1

您需要刪除身體邊距。

body { 
     margin:0px; 
    } 

絕對DIV是 'HTML' 的孩子。靜態div是「Body」的孩子。正文默認情況下具有8px的頁邊距。

實施例:http://jsfiddle.net/y5S6W/

0

由於元素顯示在它們被編碼爲默認頁的順序,所述絕對定位的div將在一個特定的地方;但是,第二個div將在第一個div後面,這意味着其剩餘的CSS餘量:100px;實際上將它移動超過100px加上頁面左側的第一個div的寬度。