Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change size of scrollbar thumb with CSS

I want to get a scrollbar with a thumb larger than the track. I can change the color, the opacity, everything, but I don't know how to change the size of the thumbs and the track separately.

.custom_scrollbar::-webkit-scrollbar {
	width: 1px;
	
}
.custom_scrollbar::-webkit-scrollbar-track {
	background-color: rgb(255, 255, 255);
	-webkit-border-radius: 1px;
}
.custom_scrollbar::-webkit-scrollbar-thumb:vertical {
	background-color: rgb(142, 142, 142);
	-webkit-border-radius: 0px;
    -webkit-width:5;
}
.custom_scrollbar::-webkit-scrollbar-thumb:vertical:hover {
	background: rgba(0, 245, 255, 0.65);
}

#page {
    width: 75%;
    overflow-y: scroll;
    overflow-x: hidden;
    height: 100px;
    z-index: 30;
    margin: 5%;
    padding: 3%;
}
<div id="page" class=".custom_scrollbar">
  <h1>cool</h1>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text text text </p>
  <p>text text text text text text text text FIN :D </p>
</div>

This is what I want it to look like:

What I want

like image 321
Cid-Wings Avatar asked Oct 21 '14 18:10

Cid-Wings


People also ask

Can we change height of scrollbar thumb?

the height of the thumb is based in the size of content, you can change the width inside the ::-webkit-scrollbar but the height will always be based on the content.


3 Answers

This is a really old post, but I have a working solution that does 'EXACTLY' what was asked for. Also, this will come in handy for anybody else needing this solution.

Fiddle

/* SCROLLBAR */
/* Let's get this party started */
::-webkit-scrollbar {
    width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
    background: rgb(0,0,0);
    border: 4px solid transparent;
    background-clip: content-box;   /* THIS IS IMPORTANT */
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: rgb(25,25,25);
    border: 1px solid rgb(0,0,0);
}

It is very important to set background-clip: content-box for this to work. You will be left with a track that is thinner than the scroll-bar-thumb. Cheers!!

like image 172
L-Train Avatar answered Oct 08 '22 05:10

L-Train


You can setup your size using width in ::-webkit-scrollbar.

I don't think it is possible to set separately the thumb and track size.

http://jsfiddle.net/rvcfmun7/

.test {
    overflow: auto;
    background gray ;
    max-height: 500px;
    width: 400px;
}

.test::-webkit-scrollbar{
    width: 20px;
}

.test::-webkit-scrollbar-track{
    background: rgb(41,41,41);
}
::-webkit-scrollbar-thumb{
    width: 15px;
    background: rgb(111,111,111);
}
like image 43
GibboK Avatar answered Oct 08 '22 05:10

GibboK


To make the thumb smaller than the track/scrollbar, simply add a border to the thumb having the same color as the track.

http://jsfiddle.net/Swiftaxe/75pmwmfw/

.wrapper {
    overflow: auto;
    background: white;
    max-height: 90px;
    width: 400px;
    padding: 20px 30px;
}

.wrapper::-webkit-scrollbar{
  width: 18px;
  border-radius: 20px;
}

.wrapper::-webkit-scrollbar-track{
  background: #CCEEF4;
  border-radius: 20px;
}
::-webkit-scrollbar-thumb{
  width: 24px;
  background: #49AEC0;
  border: 5px solid #CCEEF4;
  border-radius: 15px;
}
<div class="wrapper">
    <h1>Scrolling is a Virtue</h1>
    <p>Well, it's not the first time. About it! There; keep thy finger on it. This is a cogent vice thou hast here, carpenter; let me feel its grip once. So, so; it does pinch some. Oh, sir, it will break bones—beware, beware! No fear; I like a good grip; I like to feel something in this slippery world that can hold, man.</p>
</div>

If the track needs to be transparent one can use background-clip.

Unable to set the width of webkit-scrollbar-thumb

like image 4
Swiftaxe Avatar answered Oct 08 '22 07:10

Swiftaxe