I'm trying to style scrollbars which will appear on DIV's in a design I'm working on. It's webkit only so figured I could get quite a way with just CSS rather than plugins.
Unfortunately I've hit a major issue. The design requires the scrollbars to overlap the content with a transparent effect, much like OS X Mountain Lion / iOS.
When custom styles are applied to the scrollbar however it resizes the content to fit the scrollbar in. I've managed to size the content so that in the inspector it shows its under the scrollbar now, but I can't seem to make the scrollbar track transparent.
I've tried applying these to both the ::-webkit-scrollbar and ::-webkit-scrollbar-track regions:
None seem to work. Before I give up and try a JavaScript custom scrollbar solution, thought I'd see if anyone else had an answer.
* {
list-style:none;
margin:0;
padding:0;
}
body {
padding:20px;
}
#content {
background:#333;
height:400px;
padding:1px;
width:398px;
}
#content li {
background:#666;
height:100px;
margin-bottom:10px;
width:400px;
}
.scrollable-content {
overflow-x:hidden;
overflow-y:scroll;
}
.scrollable-content::-webkit-scrollbar {
background:transparent;
width:30px;
}
.scrollable-content::-webkit-scrollbar-track {
background:transparent;
}
.scrollable-content::-webkit-scrollbar-thumb {
background:#999;
}
<ol class="scrollable-content" id="content">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
I've checked these already:
webkit css scrollbar styling
How to prevent a webkit-scrollbar from pushing over the contents of a div?
CSS: Possible to "push" Webkit scrollbars into content?
::-webkit-scrollbar. Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
scrollbar is not a CSS standard. In Chrome or Safari (WebKit) you can use the extension prefixed by -webkit- Read more here. FireFox doesn't support scrollbar styling. So probably you can support this effect in IE and WebKit browsers only, or use JavaScript libraries as Iwo Kucharski said.
Scrollbar Selectors For webkit browsers, you can use the following pseudo elements to customize the browser's scrollbar: ::-webkit-scrollbar the scrollbar. ::-webkit-scrollbar-button the buttons on the scrollbar (arrows pointing upwards and downwards). ::-webkit-scrollbar-thumb the draggable scrolling handle.
I've updated your fiddle example -> http://jsfiddle.net/F9p7S/
Try this approach:
.scrollable-content::-webkit-scrollbar * {
background:transparent;
}
.scrollable-content::-webkit-scrollbar-thumb {
background:#999 !important;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With