2010-10-06 40 views
0

說我有一個絕對定位的div在一個正常的。位置:固定在包裹塊內

<div id="wrap"> <div id="sidebar"></div> </div> 

在這種情況下,當I狀態爲「文」,它們是在「包裝」的內部計算topleft,因爲後者是position="relative"

然而,當我改變「側邊欄」來position="fixed",座標是相對於<body>計算,而不是「包裝」,這將導致跳出其父的「側邊欄」,即使座標保持不變。

如何讓「側邊欄」留在「包裹」內,但是要修復?

謝謝。

回答

1

實際上,position:fixed屬性的文檔非常清晰:生成絕對定位的元素,相對於瀏覽器窗口定位。

所以,座標是相對於身體而言,而不是窗口。

如何讓「側邊欄」留在「包裹」內部,但是被修復?
這個問題似乎很奇怪。即使'側欄'最初保留在'換行'中,用戶也可以總是向下滾動:'換行'將移動到窗口頂部(並可能消失),而'側欄'將位於用戶屏幕上的完全相同位置。

編輯
「固定」位置元件的一個例子是「歡迎到...」當你來到第一時間任何堆棧交換位點頂杆(例如,cooking)。

1

@Nikita暗示,這個想法不是使用position: fixed而是使用position: absolute

爲此,您還需要將父元素#wrapposition: relative' in order to have the#側欄位置相對於父元素而不是窗口定位。