2009-07-29 93 views
142

當用戶訪問網頁時(當頁面沒有足夠的內容來觸發滾動條的激活時),使瀏覽器的垂直滾動條保持可見狀態所需的CSS是什麼?使主滾動條始終可見

回答

269
html { 
    overflow: -moz-scrollbars-vertical; 
    overflow-y: scroll; 
} 

這使滾動條總是可見的,只有在需要時纔會激活。

更新:如果上述不起作用,只是使用這可能。

html { 
    overflow-y:scroll; 
} 
+3

做什麼?因爲'-moz-scrollbars-vertical'似乎不贊成使用'overflow-y'屬性。 – 2009-07-29 19:41:53

+0

如果我沒有記錯,我認爲Internet Explorer 6.x +,Firefox 1.5+。我一直在使用上面的代碼,它適用於FF1.5-3.5.1和IE6-8。 – Corv1nus 2009-07-29 19:43:56

+0

謝謝,+1。我忘了那個'-moz'屬性。 – 2009-07-29 19:46:08

22
html { 
    overflow-y: scroll; 
} 

這就是你想要的嗎?

不幸的是,Opera 9.64應用於HTMLBODY時似乎忽略了這個CSS聲明,儘管它適用於其他塊級元素,如DIV

9
html {height: 101%;} 

我用這種跨瀏覽器解決方案(注:我一直使用DOCTYPE聲明的第一行,我不知道,如果它工作在怪異模式,從來沒有測試)。

這將總是在每個頁面顯示一個ACTIVE垂直滾動條,垂直滾動條只能滾動幾個像素。

當頁面內容爲比瀏覽器的可見區域(查看端口)短時,仍然會看到垂直滾動條處於活動狀態,並且它只能滾動幾個像素。

如果您正在使用該解決方案您的CSS代碼也驗證了W3C因爲你不使用非標準的CSS迷戀CSS驗證(我obesessed只能用HTML驗證)屬性,如-moz-scrollbars-vertical

+0

優雅的解決方案 – 2018-02-16 15:09:53

0

設置身高到101%是我解決問題的方法。 當您在切換超過視口高度的頁面和不在視口高度的頁面之間進行切換時,您的頁面將不再「輕彈」。

1

我能夠通過將它添加到body標籤中來獲得此功能。對我來說更好,因爲我沒有任何關於html元素的東西。

body { 
    overflow-y: scroll; 
} 
17

在過去的幾年中發生了變化。上述答案在所有情況下都不再有效。蘋果正在推行到處都是disappearing scrollbars。 Safari瀏覽器,Chrome瀏覽器,甚至Firefox上的MacOs(和iOs)只在實際滾動時顯示滾動條 - 我不知道當前的Windows/IE。然而,在Webkit上有非標準的方式來設置scroll bars(IE很久以前就放棄了)。

+0

但它優雅地降低這些新的? – Ben 2014-05-27 13:34:08

+3

感謝消失滾動條上的優秀點。對我來說,保持滾動條可見的原因是爲了避免這種輕微的但非常明顯且令人討厭的混蛋,因爲內容從滾動變爲不滾動。隨着滾動條的消失,當他們展示和隱藏時,他們不會抽搐身體,所以它對我來說很好。但是,感謝這個優秀的觀點。 – Noitidart 2015-09-17 18:29:04

+3

從用戶體驗的角度來看,大多數時候我們都希望滾動條可見。根據目前的趨勢,如果滾動條不可見,則需要額外的步驟來「嘗試」列表中的更多可見列表。如果用戶看到滾動條,則不需要下拉列表或列表中包含更多項目的額外視覺線索。 – windsurf88 2016-03-02 16:20:06

2

另一種方法是將html元素的寬度設置爲100vw。在許多瀏覽器上,如果不是這樣,這會消除滾動條對寬度的影響。

html { width: 100vw; } 
1

將此代碼添加到您的CSS樣式表:

html {overflow-y: scroll;} 

這一切就是這麼簡單!

+0

完全相同的答案已經存在[這裏](http://stackoverflow.com/a/1202450/3679857)。 – 2015-12-21 13:21:43

+0

而這個答案在你發佈這個答案之前已經有6年的時間了。 – 2015-12-21 13:23:13

13

確保溢出設置爲「滾動」而不是「自動」。 在OS X Lion中,使用,設置爲「滾動」的溢出行爲更像自動化,滾動條在使用時仍會顯示。所以如果上面的解決方案似乎沒有工作,這可能是爲什麼。

這是你需要什麼來解決它:

::-webkit-scrollbar { 
    -webkit-appearance: none; 
    width: 7px; 
} 
::-webkit-scrollbar-thumb { 
    border-radius: 4px; 
    background-color: rgba(0, 0, 0, .5); 
    -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5); 
} 

您可以相應風格,如果你不喜歡默認的。

+0

你知道firefox的解決方法嗎? – coderVishal 2016-03-11 04:28:58

7

body { height:101%; }將「裁剪」較大的頁面。

相反,我使用:你有什麼想法,有什麼版本的FF的帶來了'溢出y`支持

body { min-height:101%; } 
+0

5年前提出這個問題,它已經有一個公認的答案。你的回答並不比已經接受的答案提供更好的答案。 – 2015-07-14 20:15:17

+4

此答案確實提供了其他答案中未提供的其他信息。 – GaTechThomas 2015-08-11 23:09:33