CSS Web制作

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

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

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

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

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

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

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

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)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!

 

Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-CSS, Web制作