最近youtubeも変えてきたね。
使用箇所
ブラウザ上の全てのスクロールバーのデザインを変えられる。
ブラウザ毎にというかOS毎にというかそういう意味でのデフォルトでそれぞれデザインが違うんで、統一してやろうってのもできる。
何より嬉しいのはoverflow-y:auto;とかで、コンテンツ内に表示されるスクロールバーのデザインが変えられること。ぶっといのが入ってくるとそれだけで台無しになるし。
それをやっていく。
まあ、webkit限定だけどね。
組み込み
例えばこんな感じ。
::-webkit-scrollbar{
width: 4px;
height: 4px;
}
::-webkit-scrollbar-track{
background: #eee;
}
::-webkit-scrollbar-thumb{
background: #ccc;
border-radius: 2px;
}
::-webkit-scrollbar-thumb:hover{
background: #aaa;
}
一個で済まないのがめんどいですね。
とりあえずこれはスクロールバーだけ表示する内容で、両端の矢印ボタンを付けたかったら「::-webkit-scrollbar-button」とか、他にも色々やれる。その色々をまとめてるサイトがあるので、色入やりたいなら検索かけてみるといいかも。まー、シンプルにしたいってのが多数派だろうし、そんなに色々付けることはないと思う。
で、paddingとかopactyとか使えないやつがあるんで気をつける。:hoverは使えるからマウスオーバー時にだけ表示したいみたいなおしゃれさんは背景色とbackgroundを同色にすればいいですね。実用性考えたら最初から見えてるほうがいいけどね。
transitionが使えないのがなぁ。
対Firefox
firefoxは-webkit-では戦えないので別のアプローチが必要になる。firefoxでスクロールバーを変更する方法はざっくり2つ、jsでデフォルトのスクロールバーを削除して代替を表示するか、cssでやるか。そう、cssでやれるんだけど上記のやつとは方法が違う。
【親要素】{
scrollbar-width: thin; //幅、高さ共通
scrollbar-color: #222 #1a1a1a; //ドラッグ部位、スクロール領域背景
}
-moz-じゃないのが意外。
指定できるのはこの2つ。角丸とかにはできないね。カーソルを乗せた際に勝手に色が変わるけど:hoverで指定できるのでフォローは可能。詳細は賢いサイトを見たほうがいい。
現状、自分としては必要十分だけど自由度が低いってのと、やっぱり他のブラウザと足並みが揃わないのは気持ち悪いですね。幅を実数で指定できないのがほんと。
対InternetExplorer(ie11)
ついでだから調べたけど、先に結論として、打つ手がない。
色しか変えられない。
対応策はあるんだけど、しかもそれは全環境に対応するらしいんだけど、動作に納得してないので最適解とは言えない。それはjsでの装飾という手段。いくつかある。
ホイールでスクロールしたらカクカクするのが気に食わないので、だったらIEは諦めて、ブレがあってもCSSでいいかなって。
コメント