css3 自定義滾動條

::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}

::-webkit-scrollbar-track,
::-webkit-scrollbar-thumb {
  border-radius: 999px;
  border: 5px solid transparent;
}

::-webkit-scrollbar-track {
  box-shadow: 1px 1px 5px rgba(0,0,0,.2) inset;
}

::-webkit-scrollbar-thumb {
  min-height: 20px;
  background-clip: content-box;
  box-shadow: 0 0 0 5px rgba(0,0,0,.2) inset;
}

::-webkit-scrollbar-corner {
  background: transparent;
}



以下資料來源於網絡:

  • ::-webkit-scrollbar 滾動條整體部分
  • ::-webkit-scrollbar-button 滾動條兩端的按鈕
  • ::-webkit-scrollbar-track 外層軌道
  • ::-webkit-scrollbar-track-piece 內層軌道,滾動條中間部分(除去)
  • ::-webkit-scrollbar-thumb (拖動條?滑塊?滾動條裏面可以拖動的那個,腫麼翻譯好呢?)
  • ::-webkit-scrollbar-corner 邊角
  • ::-webkit-resizer 定義右下角拖動塊的樣式
  • :horizontal – horizontal僞類應用於水平方向的滾動條
  • :vertical – vertical僞類應用於豎直方向的滾動條
  • :decrement – decrement僞類應用於按鈕和內層軌道(track piece)。它用來指示按鈕或者內層軌道是否會減小視窗的位置(比如,垂直滾動條的上面,水平滾動條的左邊。)
  • :increment – increment僞類和decrement類似,用來指示按鈕或內層軌道是否會增大視窗的位置(比如,垂直滾動條的下面和水平滾動條的右邊。)
  • :start – start僞類也應用於按鈕和滑塊。它用來定義對象是否放到滑塊的前面。
  • :end – 類似於start僞類,標識對象是否放到滑塊的後面。
  • :double-button – 該僞類以用於按鈕和內層軌道。用於判斷一個按鈕是不是放在滾動條同一端的一對按鈕中的一個。對於內層軌道來說,它表示內層軌道是否緊靠一對按鈕。
  • :single-button – 類似於double-button僞類。對按鈕來說,它用於判斷一個按鈕是否自己獨立的在滾動條的一段。對內層軌道來說,它表示內層軌道是否緊靠一個single-button。
  • :no-button – 用於內層軌道,表示內層軌道是否要滾動到滾動條的終端,比如,滾動條兩端沒有按鈕的時候。
  • :corner-present – 用於所有滾動條軌道,指示滾動條圓角是否顯示。
  • :window-inactive – 用於所有的滾動條軌道,指示應用滾動條的某個頁面容器(元素)是否當前被激活。(在webkit最近的版本中,該僞類也可以用於::selection僞元素。webkit團隊有計劃擴展它並推動成爲一個標準的僞類)

另外,:enabled、:disabled、:hover 和 :active 等僞類同樣可以用於滾動條中。

關於具體的demo,這裏不再做了,網上已經有很多demo可以參考,比如,webkit官方的這個,具體的線上項目中也有現成的例子,比如,QQ空間的簽到彈出框和豆瓣說的右側詳情欄(某條信息評論多的時候會顯示)。

值得一提的是,webkit的這個僞類和僞元素的實現很強大,雖然類目有些多,但是我們可以把滾動條當成一個頁面元素來定義,也差不多可以用上一些高級的CSS3屬性,比如漸變、圓角、RGBa等等,當然有些地方也可以用圖片,然後圖片也可以轉換成Base64,總之,可以盡情發揮了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章