::-webkit-scrollbar
非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。
::-webkit-scrollbar
は CSS の擬似要素で、スクロール可能なオーバーフローを持つ要素のスクロールバーのスタイルに影響を与えます。
scrollbar-color
および scrollbar-width
の標準プロパティは、この擬似要素および関連する ::-webkit-scrollbar-*
擬似要素に対応していないブラウザーの代替として使用できます(ブラウザーの互換性を参照してください)。
メモ: scrollbar-color
および scrollbar-width
に対応しており、 auto
以外の値が設定されている場合、これらは ::-webkit-scrollbar-*
スタイル設定を上書きします。
詳細については、「スクロールバースタイルの代替設定を追加」をご覧ください。
CSS スクロールバーのセレクター
以下の擬似要素を使用することで、WebKit ブラウザーのスクロールバーのさまざまな部分をカスタマイズすることができます。
::-webkit-scrollbar
— スクロールバー全体。::-webkit-scrollbar-button
— スクロールバーのボタン(上下の矢印で一度に一行ずつスクロールします)。::-webkit-scrollbar:horizontal
— 水平スクロールバー。::-webkit-scrollbar-thumb
— ドラッグ可能なスクロールハンドル。::-webkit-scrollbar-track
— スクロールバーのトラック(プログレスバー)で、白いバーの上にグレーのバーがあるところ。::-webkit-scrollbar-track-piece
— トラック(プログレスバー)のハンドルで覆われていない部分。::-webkit-scrollbar:vertical
— 垂直スクロールバー。::-webkit-scrollbar-corner
— スクロールバーの一番下の角で、水平スクロールバーと垂直スクロールバーの両方が合わさるところ。これは多くの場合、ブラウザーウィンドウの右下隅になります。::-webkit-resizer
— いくつかの要素の下隅に現れる、ドラッグ可能なサイズ変更ハンドルです。
アクセシビリティ
制作者は、スクロールバーの外観を変更すると、外部の一貫性が損なわれ、ユーザビリティに悪影響を与えるため、スクロールバーのスタイル設定は避けるようにしましょう。スクロールバーをスタイル設定する場合は、色のコントラストが十分であり、タッチターゲットの幅と高さが 44 ピクセル以上であることを確実にしてください。 Techniques for WCAG 2.0: G183: Using a contrast ratio of 3:1 および Understanding WCAG 2.1 : Target Size を参照してください。
例
-webkit-scrollbar
を使用してスクロールバーにスタイル設定
CSS
.visible-scrollbar,
.invisible-scrollbar,
.mostly-customized-scrollbar {
display: block;
width: 10em;
overflow: auto;
height: 2em;
padding: 1em;
margin: 1em auto;
outline: 2px dashed cornflowerblue;
}
.invisible-scrollbar::-webkit-scrollbar {
display: none;
}
/* 「ほぼカスタマイズされた」スクロールバーをデモする
* (幅と高さを指定した場合は表示されません) */
.mostly-customized-scrollbar::-webkit-scrollbar {
width: 5px;
height: 8px;
background-color: #aaa; /* またはトラックに追加 */
}
/* つまみを追加 */
.mostly-customized-scrollbar::-webkit-scrollbar-thumb {
background: #000;
}
HTML
結果
スクロールバースタイルに代替設定を追加
@supports
アットルールを使用して、ブラウザーが標準の scrollbar-color
および scrollbar-width
プロパティに対応しているかどうかを検出し、対応していない場合は ::-webkit-scrollbar-*
擬似要素を使用して代替設定を使用することができます。次の例は、対応している場合は scrollbar-color
を使用して、対応していない場合は ::-webkit-scrollbar-*
擬似要素を使用して、スクロールバーに色を適用する方法を示しています。
HTML
Yoshi
Yoshi is a fictional dinosaur who appears in video games published by
Nintendo. Yoshi debuted in Super Mario World (1990) on the SNES as Mario and
Luigi's sidekick.
Throughout the mainline Super Mario series, Yoshi typically serves as
Mario's trusted steed.
With a gluttonous appetite, Yoshi can gobble enemies with his long tongue,
and lay eggs that doubly function as projectiles.
CSS
/* For browsers that support `scrollbar-*` properties */
@supports (scrollbar-color: auto) {
.scroll-box {
scrollbar-color: aquamarine cornflowerblue;
}
}
/* Otherwise, use `::-webkit-scrollbar-*` pseudo-elements */
@supports selector(::-webkit-scrollbar) {
.scroll-box::-webkit-scrollbar {
background: aquamarine;
}
.scroll-box::-webkit-scrollbar-thumb {
background: cornflowerblue;
}
}
結果
下記の例では、境界線のあるボックスを垂直方向にスクロールして、スクロールバーのスタイル設定の効果を確認できます。
仕様書
規格の一部ではありません。
ブラウザーの互換性
css.selectors.-webkit-scrollbar
css.selectors.-webkit-scrollbar-button
css.selectors.-webkit-scrollbar-thumb
css.selectors.-webkit-scrollbar-track
css.selectors.-webkit-scrollbar-track-piece
css.selectors.-webkit-scrollbar-corner
css.selectors.-webkit-resizer
関連情報
scrollbar-width
scrollbar-color
- Don't use custom scrollbars (2023)
- Scrollbar styling on developer.chrome.com (2024)
- Styling Scrollbars on WebKit.org (2009)