2011-06-16 48 views
1

請看我的小提琴:http://jsfiddle.net/qVHg8/1/爲什麼固定的右邊欄不在位置相對分區內?

爲什麼fixedRightCol定位在外部容器div的右側:0?現在它正在我不想要的容器div之外。

我可以使用絕對位置,它將fixedRightCol放在正確的位置,但滾動。我想修復fixedRightCol(不滾動)。

所以我怎樣才能得到fixedRightCol位置正確,並固定在滾動?

感謝

+0

所以只是爲了跟進,你希望div在視口中被固定,所以它滾動,但修復了父div的右邊緣? – 2011-06-16 02:00:33

+0

Alastair,這是正確的 – AnApprentice 2011-06-16 02:30:09

+0

也許我需要使用兩個div?一個絕對的位置,另一個固定? – AnApprentice 2011-06-16 02:30:22

回答

1

如果要固定在紅格內的綠格,你需要使用position: absolute;

http://jsfiddle.net/qVHg8/2/

position: fixed;將元素修復到視口,而不是父項。

編輯:

如果你能夠使用JavaScript代碼&的jQuery,那麼這將與動態利潤率工作:

$(function(){ 
    $('.fixedRightCol').css({right: $('.container').offset().left}); 
}); 

,多數民衆贊成什麼做的是設置right CSS財產作爲容器的計算left財產。由於兩側(自動)的邊距相同,因此會將紅色分隔線移動到正確的位置。

http://jsfiddle.net/qVHg8/4/是一個工作的例子。

+0

謝謝,我想這意味着我需要一個組合,因爲這是我想要實現的。這怎麼可能? – AnApprentice 2011-06-16 01:50:38

+1

@AnApprentice:你可以用你想達到的目標來編輯你的問題嗎?這裏的所有答案都會回答你的問題,但如果你想讓它做其他事情,那麼你需要指定它。 – 2011-06-16 01:52:11

+0

抱歉。問題已更新。這更清楚嗎? thx – AnApprentice 2011-06-16 01:58:00

0

我想你的意思使用position:absolute;

+0

我其實希望它被修復。所以我需要絕對的和固定的東西? – AnApprentice 2011-06-16 01:44:10

+0

將某物附加到另一個元素是使用相對於該元素的'position:absolute'。 'position:fixed;'將元素附加到窗口。 – 2011-06-16 01:45:58

1

當你給的東西一個位置固定的,它打破了所有的div它可能會在

編輯: 你可能只是這樣做:

.fixedRightCol{ 
    position: fixed; 
    margin-left: 350px; 
    width: 50px; 
    background: green; 
} 

使用保證金左:350像素;對於沒有權利的綠色框:0px;或任何東西...

+0

@AnApprentice:我的回答有什麼問題?不依賴於打開了JavaScript的用戶,很好地工作... – Teak 2011-06-16 03:20:24