範圍滑桿
使用我們的自訂範圍輸入欄位,獲得跨瀏覽器一致的樣式和內建的自訂功能。
本頁內容
概覽(Overview)
使用 .form-range 建立自訂的 <input type="range"> 控制項。軌道(背景)和滑塊(數值)都設定了樣式,以便在不同瀏覽器中呈現相同的外觀。由於只有 Firefox 支援從滑塊的左側或右側「填充」軌道以視覺化顯示進度,我們目前不支援這項功能。
<label for="range1" class="form-label">Example range</label>
<input type="range" class="form-range" id="range1"> 停用(Disabled)
在輸入欄位上加入 disabled 布林屬性,使其呈現灰色外觀、移除指標事件並防止聚焦。
<label for="disabledRange" class="form-label">Disabled range</label>
<input type="range" class="form-range" id="disabledRange" disabled> 最小值和最大值(Min and max)
範圍輸入欄位有隱含的 min 和 max 值,分別為 0 和 100。您可以使用 min 和 max 屬性指定新的值。
<label for="range2" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="5" id="range2"> 步進(Steps)
預設情況下,範圍輸入欄位會「跳」到整數值。要改變這一點,您可以指定 step 值。在下面的範例中,我們使用 step="0.5" 將步數加倍。
<label for="range3" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="5" step="0.5" id="range3"> 輸出值(Output value)
範圍輸入欄位的值可以使用 output 元素和一些 JavaScript 來顯示。
<label for="range4" class="form-label">Example range</label>
<input type="range" class="form-range" min="0" max="100" value="50" id="range4">
<output for="range4" id="rangeValue" aria-hidden="true"></output>
<script>
// This is an example script, please modify as needed
const rangeInput = document.getElementById('range4');
const rangeOutput = document.getElementById('rangeValue');
// Set initial value
rangeOutput.textContent = rangeInput.value;
rangeInput.addEventListener('input', function() {
rangeOutput.textContent = this.value;
});
</script> CSS
Sass 變數(Sass variables)
$form-range-track-width: 100%;
$form-range-track-height: .5rem;
$form-range-track-cursor: pointer;
$form-range-track-bg: var(--#{$prefix}secondary-bg);
$form-range-track-border-radius: 1rem;
$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset);
$form-range-thumb-width: 1rem;
$form-range-thumb-height: $form-range-thumb-width;
$form-range-thumb-bg: $component-active-bg;
$form-range-thumb-border: 0;
$form-range-thumb-border-radius: 1rem;
$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1);
$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow;
$form-range-thumb-focus-box-shadow-width: $input-focus-width; // For focus box shadow issue in Edge
$form-range-thumb-active-bg: tint-color($component-active-bg, 70%);
$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color);
$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;