CSS自訂捲軸樣式與顏色

來源:互聯網
上載者:User

IE的專有屬性:

 代碼如下 複製代碼

scrollbar-arrow-color: color; /*三角箭頭的顏色*/
scrollbar-face-color: color; /*立體捲軸的顏色(包括箭頭部分的背景色)*/
scrollbar-3dlight-color: color; /*立體捲軸亮邊的顏色*/
scrollbar-highlight-color: color; /*捲軸的醒目提示(左陰影?)*/
scrollbar-shadow-color: color; /*立體捲軸陰影的顏色*/
scrollbar-darkshadow-color: color; /*立體捲軸外陰影的顏色*/
scrollbar-track-color: color; /*立體捲軸背景顏色*/
scrollbar-base-color:color; /*捲軸的基色*/

瀏覽器右邊預設的捲軸或許有點呆板。並且在不同作業系統平台(Mac OS,Win xp78)上也有不一致的展現。一般這也不算什麼大問題,甚至不算什麼問題。但是總有寫時候你需要改變一下,為了突出個性而來點不一樣的。比如像QQ音樂和我的個人首頁。這裡所講的css定義捲軸樣式只限於webkit瀏覽器,通過css的一些偽類來定義。

 代碼如下 複製代碼

::-webkit-scrollbar //捲軸整體部分
::-webkit-scrollbar-button //捲軸兩端的按鈕
::-webkit-scrollbar-track //外層軌道
::-webkit-scrollbar-track-piece //內層軌道,捲軸中間部分(除去)
::-webkit-scrollbar-thumb //(捲軸裡面可以拖動的那個)
::-webkit-scrollbar-corner //邊角
::-webkit-resizer

//定義右下角拖動塊的樣式實際上還有很多更多的更豐富的偽類來控制捲軸樣式,不過在以上列出的一些已經能夠滿足基本的需要了。

此外:

需要說明的是,IE瀏覽器其實是最早提供捲軸的樣式支援的,但是其他瀏覽器並不買微軟的賬,所以只有IE才支援,並且個人以為IE那套實現的樣式比較醜陋。有人開發了一套線上產生此樣式的flash工具,想瞭解的同學可以移步這裡。另外網上也有一些外掛程式來實現自訂。如果你希望在多種瀏覽器都擁有一致的體驗,可以嘗試使用外掛程式來實現。

一些Demo或代碼:

 代碼如下 複製代碼

::-webkit-scrollbar {
width:14px;
height:14px;
background:-webkit-gradient(linear,left top,right top,color-stop(0%,rgba(202,202,202,0.07)),color-stop(100%,rgba(229,229,229,0.07)));
background:-webkit-linear-gradient(left,rgba(202,202,202,0.07) 0%,rgba(229,229,229,0.07) 100%);
background-color:rgba(229,229,229,.3);
-webkit-box-shadow:0 0 1px 0 rgba(0,0,0,.15) inset,0 1px 0 0 #fff;
box-shadow:0 0 1px 0 rgba(0,0,0,.15) inset,0 1px 0 0 #fff;
overflow:visible;
border-radius:4px;
border:solid 1px #A6A6A6;
}
::-webkit-scrollbar-button {
width:0;
height:0;
display:block;
background-color:transparent;
}
::-webkit-scrollbar-track {
}::-webkit-scrollbar-track-piece {
}::-webkit-scrollbar-thumb {
background:-webkit-gradient(linear,left top,right top,color-stop(0%,rgba(233,233,233,0.05)),color-stop(100%,rgba(221,221,221,0.05)));
background:-webkit-linear-gradient(left,rgba(233,233,233,0.05) 0%,rgba(221,221,221,0.05) 100%);
-webkit-box-shadow:0 2px 1px 0 rgba(0,0,0,.05),inset 1px 1px 0 0 #FFF;
box-shadow:0 2px 1px 0 rgba(0,0,0,.05),inset 1px 1px 0 0 #FFF;
background-color:rgba(229,229,229,.9);
overflow:visible;
border-radius:4px;
border:solid 1px #A6A6A6;
}
::-webkit-scrollbar-thumb:hover {
background-color:rgba(229,229,229,.4);
}
::-webkit-scrollbar-thumb:active {
background-color:rgba(229,229,229,1);
-webkit-box-shadow:0 0 1px 0 rgba(0,0,0,.15) inset;
box-shadow:0 0 1px 0 rgba(0,0,0,.15) inset;
}
::-webkit-scrollbar-corner {
}
::-webkit-resizer {
}::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-button:vertical{display:none}
::-webkit-scrollbar-track:vertical{background-color:black}
::-webkit-scrollbar-track-piece{background:#FFF}
::-webkit-scrollbar-thumb:vertical{background-color:#999;}
::-webkit-scrollbar-thumb:vertical:hover{background-color:#9f9f9f}
::-webkit-scrollbar-corner:vertical{background-color:#535353}
::-webkit-scrollbar-resizer:vertical{background-color:#FF6E00}

當然webkit提供的不止這些,還有很多偽類,可以更豐富捲軸樣式:

:horizontal – 應用於水平方向的捲軸
:vertical – 應用於豎直方向的捲軸
:decrement – 應用於按鈕和內層軌道(track piece)。它用來指示按鈕或者內層軌道是否會減小視窗的位置(比如,垂直捲軸的上面,水平捲軸的左邊。)
:increment – 和decrement類似,用來指示按鈕或內層軌道是否會增大視窗的位置(比如,垂直捲軸的下面和水平捲軸的右邊。)
:start – 應用於按鈕和滑塊。它用來定義對象是否放到滑塊的前面。
:end – 類似於start偽類,標識對象是否放到滑塊的後面。
:double-button – 該偽類以用於按鈕和內層軌道。用於判斷一個按鈕是不是放在捲軸同一端的一對按鈕中的一個。對於內層軌道來說,它表示內層軌道是否緊靠一對按鈕。
:single-button – 類似於double-button偽類。對按鈕來說,它用於判斷一個按鈕是否自己獨立的在捲軸的一端。對內層軌道來說,它表示內層軌道是否緊靠一個single-button。
:no-button – 用於內層軌道,表示內層軌道是否要滾動到捲軸的終端,比如,捲軸兩端沒有按鈕的時候。
:corner-present – 用於所有捲軸塊,指示捲軸圓角是否顯示。
:window-inactive – 用於所有的捲軸塊,指示應用捲軸的某個頁面容器(元素)是否當前被啟用。(在webkit最近的版本中,該偽類也可以用於::selection虛擬元素。webkit團隊有計劃擴充它並推動成為一個標準的偽類)
另外,:enabled、:disabled、:hover 和 :active 等偽類同樣可以用於捲軸中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.