Overview
Create custom <input type="range"> controls with
.form-range. The track (the background) and thumb (the value) are both styled to appear
the same across browsers. As only Firefox supports “filling” their track from the left or right of the
thumb as a means to visually indicate progress, we do not currently support it.
<label for="customRange1" class="form-label">Example range</label>
<input type="range" class="form-range" id="customRange1">
<label for="customRange1" class="form-label">Example
range</label> <input type="range" class="form-range"
id="customRange1">
Disabled
Add the disabled boolean attribute on an input to give it a grayed out appearance, remove
pointer events, and prevent focusing.
<label for="disabledRange" class="form-label">Disabled range</label>
<input type="range" class="form-range" id="disabledRange" disabled>
<label for="disabledRange" class="form-label">Disabled
range</label> <input type="range" class="form-range"
id="disabledRange" disabled>
Min and max
Range inputs have implicit values for min and max—0 and
100, respectively. You may specify new values for those using the min and
max attributes.
<label for="customRange2" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="5" id="customRange2">
<label for="customRange2" class="form-label">Example
range</label> <input type="range" class="form-range"
min="0" max="5" id="customRange2">
Steps
By default, range inputs “snap” to integer values. To change this, you can specify a
step value. In the example below, we double the number of steps by using
step="0.5".
<label for="customRange3" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="5" step="0.5" id="customRange3">
<label for="customRange3" class="form-label">Example
range</label> <input type="range" class="form-range"
min="0" max="5" step="0.5" id="customRange3">
Output value
The value of the range input can be shown using the output element and a bit of
JavaScript.
<label for="customRange4" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="100" value="50" id="customRange4">
<output for="customRange4" id="rangeValue" aria-hidden="true"></output>
<script>
// This is an example script, please modify as needed
const rangeInput = document.getElementById('customRange4');
const rangeOutput = document.getElementById('rangeValue');
// Set initial value
rangeOutput.textContent = rangeInput.value;
rangeInput.addEventListener('input', function() {
rangeOutput.textContent = this.value;
});
</script>
<label for="customRange4" class="form-label">Example
range</label> <input type="range" class="form-range"
min="0" max="100" value="50" id="customRange4">
<output for="customRange4" id="rangeValue"
aria-hidden="true"></output> <script> // This is an example script,
please modify as needed const rangeInput = document.getElementById('customRange4');
const rangeOutput = document.getElementById('rangeValue'); // Set initial value
rangeOutput.textContent = rangeInput.value; rangeInput.addEventListener('input',
function() { rangeOutput.textContent = this.value; }); </script>