[CSS] スクロールバーを非表示にする(IE, Edge, Chrome, Safari, Firefoxに対応)
こんにちは、@yoheiMuneです。
今日は、CSSでスクロールバーを非表示にする方法をブログに書きたいと思います。
以降ではブラウザごとに、詳細を説明します。
なお、
最後になりますが本ブログでは、フロントエンド、Python、インフラ、サーバー、PHP、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
今日は、CSSでスクロールバーを非表示にする方法をブログに書きたいと思います。
目次
まとめ
IE、Edge、Chrome、Safari、Firefox でスクロールバーを非表示にする実装方法はこちらです。コード
<div class="container">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br></div> <style> .container { height: 150px; overflow-y: scroll; -ms-overflow-style: none; /* IE, Edge 対応 */ scrollbar-width: none; /* Firefox 対応 */ } .container::-webkit-scrollbar { /* Chrome, Safari 対応 */ display:none; } </style>
実行サンプル
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
以降ではブラウザごとに、詳細を説明します。
IE、Edgeでスクロールバーを非表示にする
スクロールバーの制御は、ブラウザごとに行う必要があります。Internet Explorer と Edge の場合は、-ms-overflow-style
プロパティを利用します。.container { overflow: scroll; -ms-overflow-style: none; /* これを追加 */ }
-ms-overflow-style
に設定可能な値として、スクロール中のみスクロールバーを表示する-ms-autohiding-scrollbar
なども存在します。詳細は「-ms-overflow-style | MDN」をご覧ください。Chrome、Safariでスクロールバーを非表示にする
Chrome、Safariの場合、::-webkit-scrollbar
擬似要素でスクロールバーを制御します。.container::-webkit-scrollbar { display:none; }
::-webkit-scrollbar
擬似要素では表示制御以外に、スクロールバーのwidth
やheight
を変えたり、色を変えたりもできます。詳細は「::-webkit-scrollbar | MDN」をご覧ください。Firefoxでスクロールバーを非表示にする
Firefoxでスクロールバーを非表示にしたい場合、scrollbar-width
プロパティを利用します。.container { scrollbar-width: none; }
scrollbar-width
は2019年時点では、Firefoxのみで利用可能な試験的なプロパティのため、将来的にはなくなる可能性があります。使い方の詳細やブラウザサポート状況は「scrollbar-width | MDN」をご覧ください。なお、
overflow: -moz-scrollbars-none;
と設定することでもスクロールバーを非表示にできますが、困った副作用として、スクロールもできなくなるという問題があります。最後に
マークアップでスクロールバー制御をしたいこともしばしば。そんな時に検証済みのノウハウがまとまっていると良いなと思い、今回ブログにまとめました。今後も色々とノウハウをまとめて書けたらいいなと思います。最後になりますが本ブログでは、フロントエンド、Python、インフラ、サーバー、PHP、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!