因為最近公司做的項目需要用到滾動條(項目在webkit平臺下運行),所以研究下滾動條的CSS。
瀏覽器默認的滾動條樣子太過屌絲了,得自己動手整整。記得IE瀏覽器有幾個設置滾條的樣式,不過比較雞肋,只能設置顏色之類的,而且webkit下面也不支持。無意間看到網易郵箱的滾動條樣子很好看,一開始以為是用div模擬的,結果一看,吼吼,正合我意,利用的CSS來設置的,而且是webkit瀏覽器的。
得好好研究這幾個屬性下,才能自己動手改造。
主要有下面7個屬性
具體所指如圖例
上面是滾動條的主要幾個設置屬性,還有更詳盡的CSS屬性
: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團隊有計劃擴展它并推動成為一個標準的偽類)
寫個實例demo吧(請在webkit瀏覽器下觀看),不能光說不練。CSS也很簡單。
IE下面就比較簡單那了,自定義的項目比較少,全是顏色。
最后吐槽下,作為三大瀏覽器的火狐暫時沒有找到相關CSS。前些年,火狐很火,市場占有率一度威脅到IE的第一的位置。最近兩年,火狐除了升級版本號,亮點很少;啟動速度依舊很慢,內存占用居高不下,對CSS3和HTML5支持都走在各瀏覽器的后面。以前是因為火狐插件比較多,在插件數量和質量被chrome趕上來的情況下,沒有理由在使用火狐了,果斷轉投chrome。
原創(chuàng)文章,轉載請注明: 轉載自前端開發(fā)
本文鏈接地址: CSS設置滾動條樣式