HTM/CSS

cssのカスタマイズでmacとwindowsのスクロールバーを同じデザインにする方法

投稿日アイコン
cssのカスタマイズでmacとwindowsのスクロールバーを同じデザインにする方法

macのスクロールバーとwindowsのスクロールバーを同じデザインにするには、cssで対応するのが一番簡単です。

macのスクロールバーのデザインをベースにしたdemoを用意しているので、何も考えずにコピペで対応したい人は、demoをコピペして、調整して頂ければOKです。

ただし、難しいことをしているわけではないので、調整を手探りで終わらせたないためにも、簡単に説明も目を通して頂けると幸いです。

カスタムスクロールバーの作成方法

macのスクロールバーをベースとしたスクロールバーのデモ

macでデモを見ると、本当にスクロールバーがカスタマイズされているのか分からないかもしれません(macnのスクロールバーのデザインを真似ているため)。

デモのデザインを変えたい場合は、cssで調整することができます。

Mac開発時に注意すること

Macのデフォルトの設定だと、スクロールバーが常に表示されるのではなく、スクロールしている時のみの表示になっていると思います。常にスクロールバーが表示される設定の時だけデザインが崩れるケースもあるので、フロント側の実装をする場合は、常にスクロールバーを表示させる設定にするようにしましょう!

CSSによる調整

使用するCSSのスタイルとは下記になります

.scroll-container {
    max-width: 680px;
    height: 400px;
    margin: 0 auto;
    overflow: auto;
    padding: 0 8px 0 20px;
}
.scroll-container::-webkit-scrollbar {
    width: 12px;
}

.scroll-container::-webkit-scrollbar-corner {
    display: none;
}
.scroll-container::-webkit-scrollbar-thumb {
    background: #b3b3b3;
    border-radius: 100px;
    border: solid transparent;
    background-clip: content-box;
}

scroll-containerは、デモで使用している親要素のdivに付与しているclassになります。

スクロールバーのデザインを変えたい場合は、webkitにより設定していきます。

スクロールバーの全体の幅や高さ

::-webkit-scrollbar {
    width: 12px; /* 縦スクロールバーの幅 */
    height: 12px; /* 横スクロールバーの高さ */
}

-webkit-scrollbarは、カスタムスクロールバーの全体的なコンテナを定義します。スクロールバーの全体の幅や高さを設定することができます。

また、この幅によって次に説明する「つまみ」の大きさも変わるので、慎重に調整しましょう。

スクロールバーの「つまみ」

::-webkit-scrollbar-thumb {
    background: #b3b3b3;
    border-radius: 100px;
    border: solid transparent;
    background-clip: content-box;
}

-webkit-scrollbar-thumbは、スクロールバーの「つまみ」と呼ばれる部分をスタイリングします。ユーザーがスクロールする際に操作する部分です。

縦と横のスクロールバーが交差する部分

::-webkit-scrollbar-corner {
    background-color: #f1f1f1; /* コーナーの背景色 */
}

-webkit-scrollbar-cornerは、縦と横のスクロールバーが交差する部分(コーナー)をスタイリングします。通常、この部分はスクロールバーの下部に位置し、デフォルトでは透明になっています。

demoでは縦スクロールのみなので、display:noneとしています。わざわざ設定しなくても問題ないのですが、念のためです。
縦と横の両方でスクロールさせる場合は、設定を考慮しましょう。

まとめ

デザイナーも、フロントエンドエンジニアも基本的にMacを使用していることが多いです。そのため、Macのスクロールバーを前提にデザインし、実装してしまうことが多いです。

しかし、一般的なユーザーはPCだとWindowsを使用していることが多いです。そうなると、デフォルトのグレーなスクロールバーによって、多くのユーザーがデザインにマッチしていないスクロールバーに対して違和感を感じることになります。

そうならないようにするためにも、MacとWindowsのスクロールバーを同じデザインになるようにしましょう!

profile_icon

青茶

デザインを形にするのが好きで、30代から実務未経験のコーダからのスタートで就職しました。 HTML・CSS・JSのコーティングをしたり、Reactで開発をしたり、スマホアプリの開発をしたりしています。 自分の技術のストック先として、このブログで発信し、成長していく・・・予定! (30代から1からコーダーや、フロントエンドエンジアを目指す人に役立つ情報も発信したいな)