CSS Web制作

【CSS】スクロールバーのデザインをカスタマイズする方法

2020年5月9日

※ 当サイトではアフィリエイト広告を利用しています

スクロールバーのデザインって変えられないの?

スクロールバーはデフォルトのデザインではイマイチ気に入らないと思う方も少なくないと思います。

また、実務でもあまりありませんが『スクロールバーをデザイン通りにして下さい』とスクロールバーまでしっかりデザインされている事があります。

今回はこのスクロールバーのデザインをカスタマイズする方法について解説したいと思います。

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

CSSでスクロールバーのデザインをカスタマイズする方法

本題に入る前に注意点があります。

今回ご紹介する方法はwebkit系のブラウザでしか使えません。

webkit系とは『Chrome』と『Safari』の事です。

逆に使えないブラウザは『Firefox』になります。

 

CSSプロパティ『:-webkit-scrollbar』を使う

それでは本題に入りますが、その前にスクロールバーの表示・非表示を設定する方法が分からないという人は以下の記事を参照下さい。

あわせて読みたい
【CSS】スクロールバーの表示・非表示を設定する方法
【CSS】スクロールバーの表示・非表示を設定する方法

続きを見る

それでは::-webkit-scrollbarを使ってスクロールバーをカスタマイズしていきますが、この::-webkit-scrollbarにはいくつか種類があります。

::-webkit-scrollbarスクロールバーの幅と高さを指定
::-webkit-scrollbar-thumbスクロールバーの移動する部分
::-webkit-scrollbar-trackスクロールバーの背景
::-webkit-scrollbar-buttonWindowsでのバーの上下に表示されるクリックすると少しスクロール出来るボタン(上下の矢印)
::-webkit-scrollbar-track-piecetrack部分となり、thumbの上下にあるエリア。trackと両方background-colorが設定されていた場合はこちらが優先される。
::-webkit-scrollbar-corner縦のスクロールバーと横のスクロールバーの間にある右下のエリア。縦横両方のスクロールバーが表示されていないと表示されない。

基本的には最初の3つだけで十分なカスタマイズが出来るので、今回はその3つを使ってカスタマイズしてみます。

 

::-webkit-scrollbar

::-webkit-scrollbarはスクロールバーの幅と高さを設定出来ます。

幅は『縦スクロールの幅』高さは『横スクロールの高さ』になります。

それぞれ設定する前の状態を見てみたいと思います。

HTMLはこちら。

<div class="sample">
  <div class="sample-box">
    テキストが入ります。
  </div>
  <div class="sample-box">
    テキストが入ります。
  </div>
  <!-- 以降繰り返し -->
</div> 

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

ここでは横スクロールも確認するため、white-space: nowrap;にして改行させないようにしています。

それではここで::-webkit-scrollbarを設定してみたいと思います。

CSSはこちらになります。

.sample::-webkit-scrollbar {
  height: 20px;
  width: 40px;
}

今回は幅を40px、高さを20pxにしてみました。

See the Pen
スクロールバーカスタマイズ:::-webkit-scrollbar
by junpei (@junpei-sugiyama)
on CodePen.

・・・幅と高さが変わったのは分かると思いますが、他の項目を設定していないので真っ白です。

それではこのまま他の項目を設定していきたいと思います。

 

::-webkit-scrollbar-thumb

::-webkit-scrollbar-thumbはスクロールバーの移動する部分になります。

早速これをカスタマイズしたものを見てみます。

.sample::-webkit-scrollbar {
  height: 20px;
  width: 40px;
}
.sample::-webkit-scrollbar-thumb {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #4169e1), to(#c71585));
  background: linear-gradient(to bottom, #4169e1 50%, #c71585);
  border-radius: 20px;
} 

See the Pen
スクロールバーカスタマイズ:::-webkit-scrollbar-thumb
by junpei (@junpei-sugiyama)
on CodePen.

・・・気持ち悪いスクロールバーになってしまいましたね。

ここで設定したのは以下の項目です。

  • background:背景色をグラデーション
  • border-radius:角を丸くする

もちろんグラデーションにしないで角を丸めないようにも出来ますし、box-shadowで影を付けることも出来ます。

また縦スクロールバーの高さや横スクロールバーの幅は、ボックスのサイズやテキストの長さなど中身によっても変わります。

 

::-webkit-scrollbar-track

::-webkit-scrollbar-trackでスクロールバーの背景色を変えます。

.sample::-webkit-scrollbar {
  height: 20px;
  width: 40px;
}
.sample::-webkit-scrollbar-thumb {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #4169e1), to(#c71585));
  background: linear-gradient(to bottom, #4169e1 50%, #c71585);
  border-radius: 20px;
}
.sample::-webkit-scrollbar-track {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #ffd700), to(#3cb371));
  background: linear-gradient(to bottom, #ffd700 50%, #3cb371);
  border-radius: 20px;
}

See the Pen
スクロールバーカスタマイズ:::-webkit-scrollbar-track
by junpei (@junpei-sugiyama)
on CodePen.

・・・なんだかトロピカルな色になりました。

ここも先ほど同じく背景色と角を丸めてみました。

ここで気になるのは右下の白いエリアです。

ここは::-webkit-scrollbar-cornerで背景色を設定すればその色になります。

あとは::-webkit-scrollbar-trackで角を丸めた分、隙間に白い部分が見えています。

この部分は::-webkit-scrollbar-track-pieceで背景色を設定すれば色が変わりますが、::-webkit-scrollbar-trackで設定した色を上書きされてしまうので注意しましょう。

 

スクロールバーのデザインを整える

最後にこの気持ち悪いスクロールバーを自然な感じにしておきます。

.sample::-webkit-scrollbar {
  width: 7px;
}
.sample::-webkit-scrollbar-thumb {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #1bb4d3), to(#1bd8d3));
  background: linear-gradient(to bottom, #1bb4d3 50%, #1bd8d3);
  border-radius: 5px;
}
.sample::-webkit-scrollbar-track {
  background: #dcdcdc;
}

See the Pen
スクロールバーカスタマイズ
by junpei (@junpei-sugiyama)
on CodePen.

white-space: nowrap;は削除して横スクロールはなくしています。

このブログのテーマカラーに寄せたグラデーションにしてみましたが・・・それでもちょっと目立ちますね。

スクロールバーのカスタマイズは控えめにするのが良さそうですね。

まとめ

今回はスクロールバーのデザインをカスタマイズする方法を解説しました。

他にもスクロールバーに関する記事を書いているので、ぜひ参考にしてみて下さい。

あわせて読みたい
【CSS】スクロールバーの表示・非表示を設定する方法
【CSS】スクロールバーの表示・非表示を設定する方法

続きを見る

あわせて読みたい
【CSS】スクロール有効のままスクロールバーを非表示にする方法
【CSS】スクロール有効のままスクロールバーを非表示にする方法

続きを見る

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-CSS, Web制作