2011-05-06 100 views
1

我正在構建的網站在屏幕中央左側有一個固定的側欄。當頁面滾動時,它應始終停留在瀏覽器窗口的垂直中心。垂直居中的固定側欄

我該如何達到這個效果?有沒有純粹的CSS/HTML解決方案?

我想過更新側欄位置onscroll,但它可能會閃爍,因爲css頂部位置得到更新。還有其他解決方案嗎?我真的很想用CSS來做到這一點,但我不介意jQuery是否會提供我正在尋找的功能。

+0

側欄的高度是否已知? – 2011-05-06 18:35:39

+0

@Kevin Peno是的邊欄的高度是固定的200px,並不會改變 – Max 2011-05-06 18:59:54

回答

2

這是你在找什麼。請注意,移動瀏覽器將忽略position:fixed,因此您需要使用一些js以使其適用於他們。另外,請確保容器的最小高度爲200px;

#sidebar 
{ 
    height: 200px; 
    position: fixed; /* Keep in position on scroll */ 
    top: 50%;  /* push down 50% of container */ 
    margin-top: -100px; /* bring back up 50% height of this element */ 
} 

#container 
{ 
    min-height: 200px; 
    _height: 200px; /* IE6 always acts as though height is min-height unless overflow: hidden */ 
} 
+0

哇,好戲!明天會試一試並回復,謝謝你的回答。 – Max 2011-05-06 19:11:04

4

您可能需要將position: fixed;添加到CSS以使其不移動。

+0

工程,除非移動。大多數(所有??)移動瀏覽器不支持'位置:固定' – 2011-05-06 18:34:58

+0

@kevin那麼你可能需要做一些js的魔術 – Neal 2011-05-06 18:37:37

+0

固定位置不會移動,但我怎麼能垂直居中? – Max 2011-05-06 19:00:45