ホームページ  >  記事  >  ウェブフロントエンド  >  CSS スクロールバー_html/css_WEB-ITnose

CSS スクロールバー_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:23:331202ブラウズ

× ディレクトリ [1] 条件 [2] デフォルト [3] サイズ [4] 互換性 [5] カスタム

前の単語

スクロール バーは Web ページでよく見られますが、十分に注目されていません。スクロール バーの問題により互換性に対処する必要がある場合にのみ、デバッグ操作を実行してください。この記事では、スクロールバーの一般的な内容を整理します。

条件

スクロール バーとオーバーフローは密接に関連しています。親のオーバーフローの値が auto またはscrollで、要素の内容が要素領域を超えている場合にのみ、スクロール バーが表示されることがあります

デフォルト

どのブラウザであっても、デフォルトのスクロール バーは < から取得されます。 6c04bd5ca3fcae76e30b72ad730ca86d の代わりに ;html> ; 6c04bd5ca3fcae76e30b72ad730ca86d 要素にはデフォルトで 8px のマージンがあるためです。スクロール バーが 6c04bd5ca3fcae76e30b72ad730ca86d 要素から取得される場合、スクロール バーとページの間に 8 ピクセルの隙間があるはずです。そのため、スクロール バーは 100db36a723c770d327fc0aef2ce13b1 要素から取得されます。スクロール バーはブラウザの利用可能な幅を占めます:

chrome/firefox/IE 17pxsafari 21px

.box{    width: 400px;    overflow: scroll;}.in{    *zoom: 1;}

<div class="box">    <div id="in" class="in"></div></div>

console.log(400-document.getElementById('in').clientWidth);

互換性

【1】IE7 ブラウザにはデフォルトで垂直スクロール バーがありますが、他のブラウザこのブラウザには

//IE7-浏览器 html{overflow-y: scroll;}//其他浏览器html{overflow: auto;}//去除页面默认滚动条html{overflow: hidden;}

【2】IE7 ブラウザはスクロール バーの幅設定機構が他のブラウザと異なります

.box{    width: 200px;    height: 100px;    background-color: pink;    overflow: scroll;}.in{    width: 100%;    height: 60px;    background-color: lightgreen;}

<div class="box">    <div class="in">测试文字</div></div>

親ボックスには垂直スクロール バーが表示されますが、実際にはchild in 使用可能な幅が減少します。 IE7 ブラウザの子の幅はスクロール バーの幅を無視します。子の幅=400*100%=400px の場合、水平スクロール バーが表示されますが、他のブラウザの子の幅はスクロール バーの幅を考慮します。子の幅 = (400-スクロールバーの幅)*100%

左の画像はIE7ブラウザ、右の画像はその他のブラウザです

r r
【3】水平中央ジャンプ問題 状況 要素がページの水平方向の中央に配置され、垂直スクロール バーがページに表示される場合、水平方向の中央にポップアップの問題が発生します。解決策は次のとおりです:

[1] IE

解 CSS スタイルを通じてローリング バーのコンポーネントのカスタム カラーをサポートします

[2] Webkit

Webkit coreを搭載したブラウザはスクロールバーのカスタムスタイルをサポートしていますが、IEとは異なり、Webkitは擬似クラスを通じて実装されています


//IE8-默认html{overflow-y: scroll}//IE9+,100vw表示浏览器的宽度,100%表示可用内容的宽度.container{padding-left: calc(100vw-100%)}

【注意】幅と高さのスタイルを設定する場合スクロールバーのパーセンテージ 値はウィンドウのサイズに相対的です

[注] スクロールバーの重なり関係は、スクロールバーが一番下にあり、その後にトラックの外側のトラック、トラックピースの内側のトラックが続きます。ボタン ボタン、コーナー コーナー、サム スライダーには、トップレベルの

疑似クラス関連

scrollbar-face-color 滚动条凸出部分的颜色scrollbar-shadow-color 立体滚动条阴影的颜色scrollbar-highlight-color 滚动条空白部分的颜色scrollbar-3dlight-color 滚动条亮边的颜色scrollbar-darkshadow-color 滚动条强阴影的颜色scrollbar-track-color 滚动条的背景颜色 scrollbar-arrow-color 上下按钮上三角箭头的颜色 scrollbar-base-color  滚动条的基本颜色

共通設定

::-webkit-scrollbar 滚动条整体部分::-webkit-scrollbar-thumb 滚动滑块::-webkit-scrollbar-track 外层轨道::-webkit-scrollbar-track-piece 内层轨道::-webkit-scrollbar-corner 边角::-webkit-scrollbar-button 两端按钮

:horizontal//horizontal伪类适用于任何水平方向上的滚动条:vertical//vertical伪类适用于任何垂直方向的滚动条:decrement//decrement伪类适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可以使区域向上或者向右移动的区域和按钮:increment//increment伪类适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可以使区域向下或者向左移动的区域和按钮:start//start伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面:end//end伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面:double-button//double-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。:single-button//single-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。:no-buttonno-button伪类表示轨道结束的位置没有按钮。:corner-present//corner-present伪类表示滚动条的角落是否存在。:window-inactive//适用于所有滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。::-webkit-scrollbar-track-piece:start {/*滚动条上半边或左半边*/}::-webkit-scrollbar-thumb:window-inactive {/*当焦点不在当前区域滑块的状态*/}::-webkit-scrollbar-button:horizontal:decrement:hover {/*当鼠标在水平滚动条下面的按钮上的状态*/}

スタイルの例え

since Defineスクロールバーのソースコード

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。