2011-10-12 10 views
43

Jestem nowy w pseudoelementach z prefiksem podwójnym dwukropkiem. Natknąłem się na artykuł na blogu omawiający stylizację pasków przewijania za pomocą jakiegoś css. Czy pseudoelement CSS może być zastosowany do poszczególnych elementów?Zastosuj styl paska przewijania do podanego elementu

/* This works by applying style to all scroll bars in window */ 
::-webkit-scrollbar { 
    width: 12px; 
} 

/* This does not apply the scrollbar to anything */ 
div ::-webkit-scrollbar { 
    width: 12px; 
} 

W tym skrzydle chciałbym dostosować pasek przewijania div, ale pasek przewijania głównego okna pozostaje domyślny.

http://jsfiddle.net/mrtsherman/4xMUB/1/

Odpowiedz

65

Twój pomysł był prawidłowy. Jednak oznaczenie div ::-webkit-scrollbar z odstępem po div jest w rzeczywistości takie samo jak div *::-webkit-scrollbar; ten selektor oznacza "pasek przewijania dowolnego elementu wewnątrz <div>". Użyj div::-webkit-scrollbar.

Zobacz demo na http://jsfiddle.net/4xMUB/2/

+0

Facepalm. Dziękuję Ci. – mrtsherman

+0

Zobacz przykład: Devstreak https://codepen.io/devstreak/pen/dMYgeO – talentedaamer

+0

Uważaj, aby nie wstawiać spacji między div i :: - webkit. Zajęło mi trochę czasu, aby dowiedzieć się, dlaczego to nie działa, problemem była biała przestrzeń. –

16

chcę użyć selektora klasy za korzystanie z niestandardowego paska przewijania.

Jakoś .foo::-webkit nie działa, ale doszedłem do wniosku, że działa div.foo::-webkit! Tych ## $$ * ## pseudo-rzeczy ....

Zobacz http://jsfiddle.net/QcqBM/16/

+0

Fajnie, dziękuję za cynk. Prawdopodobnie kolejna rzecz, która zmarnowałaby dwie godziny mojego czasu na inny dzień. – mrtsherman

+0

Nie jest już prawdą –

+0

oba z nich nie działają. –

3

Można również stosować te zasady przez id elementu. Powiedzmy, że pasek przewijania div musi być stylizowany, który ma id "myDivId". Następnie możesz wykonać następujące czynności. W ten sposób możesz używać różnych stylów dla pasków przewijania różnych elementów.

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

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

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

http://jsfiddle.net/QcqBM/516/

+0

Czy możesz zastosować go również do nazwy klasy? – URL87