1. このページの目的
ある領域にマウスオーバーするとスクロールバーを表示する。
2. デモ
- マウスをもっていくとスクロールバーが表示される。
- スクロールバーを通常より狭くして、スクロールバーが表示されてもコンテンツがずれないようにする。
- スクロールバーに色を付ける。
私は今日初めてこの学習院というものの中に這入はいりました。もっとも以前から学習院は多分この見当だろうぐらいに考えていたには相違そういありませんが、はっきりとは存じませんでした。中へ這入ったのは無論今日が初めてでございます。
さきほど岡田さんが紹介しょうかいかたがたちょっとお話になった通りこの春何か講演をというご注文でありましたが、その当時は何か差支さしつかえがあって、――岡田さんの方が当人の私よりよくご記憶きおくと見えてあなたがたにご納得のできるようにただいまご説明がありましたが、とにかくひとまずお断りを致いたさなければならん事になりました。しかしただお断りを致すのもあまり失礼と存じまして、この次には参りますからという条件をつけ加えておきました。その時念のためこの次はいつごろになりますかと岡田さんに伺うかがいましたら、此年ことしの十月だというお返事であったので、心のうちに春から十月までの日数を大体繰くってみて、それだけの時間があればそのうちにどうにかできるだろうと思ったものですから、よろしゅうございますとはっきりお受合うけあい申したのであります。ところが幸か不幸か病気に罹かかりまして、九月いっぱい床とこについておりますうちにお約束やくそくの十月が参りました。十月にはもう臥ふせってはおりませんでしたけれども、何しろひょろひょろするので講演はちょっとむずかしかったのです。しかしお約束を忘れてはならないのですから、腹の中では、今に何か云いって来られるだろう来られるだろうと思って、内々ないないは怖こわがっていました。
さきほど岡田さんが紹介しょうかいかたがたちょっとお話になった通りこの春何か講演をというご注文でありましたが、その当時は何か差支さしつかえがあって、――岡田さんの方が当人の私よりよくご記憶きおくと見えてあなたがたにご納得のできるようにただいまご説明がありましたが、とにかくひとまずお断りを致いたさなければならん事になりました。しかしただお断りを致すのもあまり失礼と存じまして、この次には参りますからという条件をつけ加えておきました。その時念のためこの次はいつごろになりますかと岡田さんに伺うかがいましたら、此年ことしの十月だというお返事であったので、心のうちに春から十月までの日数を大体繰くってみて、それだけの時間があればそのうちにどうにかできるだろうと思ったものですから、よろしゅうございますとはっきりお受合うけあい申したのであります。ところが幸か不幸か病気に罹かかりまして、九月いっぱい床とこについておりますうちにお約束やくそくの十月が参りました。十月にはもう臥ふせってはおりませんでしたけれども、何しろひょろひょろするので講演はちょっとむずかしかったのです。しかしお約束を忘れてはならないのですから、腹の中では、今に何か云いって来られるだろう来られるだろうと思って、内々ないないは怖こわがっていました。
<div class="box1">
<div class="box2">
...
</div>
</div>
.box1 {
overflow: hidden;
}
.box1:hover {
overflow-y: auto;
}
.box1 {
scrollbar-color: rebeccapurple green;
scrollbar-width: thin;
}
.box1::-webkit-scrollbar {
width: 8px; /* 8px であればコンテンツがずれない */
background-color: rebeccapurple;
}
.box1::-webkit-scrollbar-thumb {
background-color: green;
}
- この疑似要素は非標準である。
- Chrome などでは、なぜこの疑似要素が実装されているのか?
3. 注意点
- スクロールバーをそのまま表示すると、コンテンツ領域の幅が狭くなって、内容がずれる。
scrollbar-width
プロパティが使えるなら、thin を指定すればよい。
4. ブラウザの実装状況
- CSS scrollbar styling | Can I use...
- CSS property: scrollbar-color | Can I use...
- CSS property: scrollbar-width | Can I use...
- This feature is non-standard and should not be used without careful consideration. (::-webkit-scrollbar - CSS: Cascading Style Sheets | MDN)
- CSS selector: ::-webkit-scrollbar | Can I use...
- CSS selector: ::-webkit-scrollbar-track | Can I use...
- CSS selector: ::-webkit-scrollbar-thumb | Can I use...
- CSS selector: ::-webkit-scrollbar-corner | Can I use...
- CSS selector: ::-webkit-scrollbar-button | Can I use...
- CSS selector: ::-webkit-scrollbar-track-piece | Can I use...
5. 参考
- CSS Scrollbars - CSS: Cascading Style Sheets | MDN
- scrollbar-width - CSS: Cascading Style Sheets | MDN
auto
: The default scrollbar width for the platform.thin
: A thin scrollbar width variant on platforms that provide that option, or a thinner scrollbar than the default platform scrollbar width. スクロールバーが表示されても、コンテンツがずれない。none
: No scrollbar shown, however the element will still be scrollable.
- scrollbar-color - CSS: Cascading Style Sheets | MDN
- (1) スクロールバーの背景色(track と呼ぶ)と、(2) それに対する現在表示している割合分の領域の色(thumb と呼ぶ)を指定する。
auto
: Default platform rendering for the track portion of the scrollbar, in the absence of any other related scrollbar color properties.dark
: Show a dark scrollbar, which can be either a dark variant of scrollbar provided by the platform, or a custom scrollbar with dark colors.light
: Show a light scrollbar, which can be either a light variant of scrollbar provided by the platform, or a custom scrollbar with light colors.<color> <color>
: Applies the first color to the scrollbar thumb, the second to the scrollbar track.
- scrollbar-width - CSS: Cascading Style Sheets | MDN
- ::-webkit-scrollbar - CSS: Cascading Style Sheets | MDN
- Styling Scrollbars | WebKit