2012-09-09 105 views
19

如何使用CSS3設計webkit滾動條?div上的CSS3滾動條樣式

我的意思是這些屬性

::-webkit-scrollbar { 
    width: 12px; 
} 

::-webkit-scrollbar-track { 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
    border-radius: 10px; 
} 

::-webkit-scrollbar-thumb { 
    border-radius: 10px; 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
} 

這是我div標籤

<div class="scroll"></div> 

這是我目前的CSS

.scroll { 
    width: 200px; height: 400px; 
    overflow: hidden; 
} 
+1

'overflow:hidden'隱藏了任何滾動條,所以沒有什麼可以用CSS3來裝飾。你必須使滾動條可見與'overflow:scroll'或'overflow:auto' – keaukraine

回答

53

設置overflow: hidden隱藏滾動條。設置overflow: scroll以確保滾動條始終顯示。

要使用::webkit-scrollbar屬性,只需在調用它之前指定.scroll即可。

.scroll { 
    width: 200px; 
    height: 400px; 
    background: red; 
    overflow: scroll; 
} 
.scroll::-webkit-scrollbar { 
    width: 12px; 
} 

.scroll::-webkit-scrollbar-track { 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); 
    border-radius: 10px; 
} 

.scroll::-webkit-scrollbar-thumb { 
    border-radius: 10px; 
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); 
} 
​ 

看到這個現場example

+0

謝謝你的工作。有沒有辦法可以爲mozilla瀏覽器做同樣的事情? – 2619

+0

不是沒有jQuery/JavaScript。看到這個問題http://stackoverflow.com/questions/6165472/custom-css-scrollbar-for-firefox – jacktheripper

1
.scroll { 
    width: 200px; height: 400px; 
    overflow: auto; 
} 
0

你設置overflow: hidden。這會隱藏任何對於<div>來說太大的內容,這意味着不會顯示滾動條。給你的<div>一個明確的寬度和/或高度,並改變overflowauto

.scroll { 
    width: 200px; 
    height: 400px; 
    overflow: scroll; 
} 

如果你只是想顯示滾動條如果內容比<div>長,改變overflowoverflow: auto。您也只能使用overflow-yoverflow-x顯示一個滾動條。

0

css3滾動條的問題在於,交互只能在內容上執行。我們無法與觸控設備上的滾動條進行交互。