Kevin Lewis
Posted on January 5, 2020
In this post I will cover how to custom style a HTML range input (the slider). You can also get this to work in Internet Explorer, but this guide will just cover Webkit-based browsers and Firefox.
The only thing you need to know terminology wise is that the long bar which indicates the length of the slider is called the 'track' and the knob that you slide along it is called the thumb.
Getting rid of the main default styling
input[type="range"] {
-webkit-appearance: none;
}
input[type="range"]:focus {
outline: none;
}
Styling the track
input[type="range"]::-webkit-slider-runnable-track {
background: tomato;
height: 5px;
}
input[type="range"]::-moz-range-track {
background: tomato;
height: 5px;
}
Styling the thumb
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
height: 15px;
width: 15px;
background: pink;
margin-top: -5px;
border-radius: 50%;
}
input[type="range"]::-moz-range-thumb {
height: 15px;
width: 15px;
background: pink;
margin-top: -5px;
border-radius: 50%;
}
You'll notice that the thumb requires a -webkit-appearance: none;
in the webkit-prefixed version of these rules.
That's pretty much it! Have fun applying your own custom styles.
I recently added a border and box-shadow to the thumb, and a border-radius to the track, like so:
Posted on January 5, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.