CSSでスクロールバーのデザインをカスタムする

デスクトップパソコン商用無料イラスト Web制作

デザインを変更する

.scroll-areaをスクロールバーが出る要素とした場合の例です。
基本的には::-webkit-scrollbar、::-webkit-scrollbar-track、::-webkit-scrollbar-thumbで設定できますが、Firefoxは対応していないためFirefox用のみ別で指定しています。

/* スクロールバーが出る要素 */
.scroll-area{
  overflow: scroll;
}

.scroll-area::-webkit-scrollbar{
  width: 16px; /* 縦スクロール時の幅 */
  height: 16px; /* 横スクロール時の幅 */
}

/* スクロールバーの背景 */
.scroll-area::-webkit-scrollbar-track{
  background-color: #ccc;
}

/* スクロールバーのつまみ */
.scroll-area::-webkit-scrollbar-thumb{
  background-color: #333;
  border-radius: 16px;
}

/* Firefox用 */
@-moz-document url-prefix() {
  .scroll-area{
    scrollbar-width: thin; /* auto, thin, none */
    scrollbar-color: #333 #ccc; /* つまみの色 背景色 */
  }
}

::-webkit-scrollbar

疑似要素でスクロールバーの幅を指定します。widthで縦スクロール時の幅、heightで横スクロール時の幅を指定します。

::-webkit-scrollbar-track

疑似要素でスクロールバーの背景部分のスタイルを指定します。background-colorで色を、border-radiusで角丸を調整できます。

::-webkit-scrollbar-thumb

疑似要素でスクロールバーの移動する部分(つまみ)のスタイルを指定します。background-colorで色を、border-radiusで角丸を調整できます。また:hover擬似クラスでホバー時の色も設定できます。

scrollbar-width

基本的には標準のautoと細くするthinの2択です。-webkit-ベンダープレフィックスを使用する方法と違ってスクロールバーの幅をピクセル単位で変更することはできません。

scrollbar-color

1つ目の値にスクロールバーの移動する部分(つまみ)の色を指定、2つ目の値にスクロールバーの背景色を指定します。

スクロールバーを非表示にする

スクロールできる機能は維持したまま、見た目だけスクロールバーを非表示にする方法です。

.scroll-area{
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.scroll-area::-webkit-scrollbar{
  display: none;
}

タイトルとURLをコピーしました