瀏覽器滾動條 --- 自定義“衣裳”

由于種種原因,瀏覽器的默認滾動條“衣裳”實在是 (ˉ▽ ̄~)~~,為了“美”,本人結合萬維網各大神給的經驗和自己的實踐,做了此篇總結。若有錯誤,請在評論里給出,我會及時更改。

我在電腦上打開了一些瀏覽器,先觀察一下,其中IE瀏覽器版本(10-5)在我電腦上顯示是一致的,火狐版本為 59.0.2。如下圖(1)可見,除了火狐瀏覽器和Opera瀏覽器的樣式與其他瀏覽器樣式差別較大,其余樣式差別不大,主要是顏色的不同。

不知道為什么我放不上圖片,╭(╯^╰)╮ ε=唉 !

(一)專屬IE的“衣裳”

網上找到一個不錯的分享,我自己在總結下,內容原網址

滾動條樣式支持情況支持瀏覽器版本可否繼承描述
scrollbar-3dlight-colorIE特有屬性IE5.5 y設置滾動框的和滾動條箭頭左上邊緣的顏色
scrollbar-highlight-colorIE特有屬性IE5.5 y設置滾動框的和滾動條箭頭左上邊緣的顏色
scrollbar-face-colorIE特有屬性IE5.5 y設置滾動框和滾動條箭頭的顏色
scrollbar-arrow-colorIE特有屬性IE5.5 y設置滾動條箭頭的顏色
scrollbar-shadow-colorIE特有屬性IE5.5 y設置滾動框的和滾動條箭頭右下邊緣的顏色
scrollbar-dark-shadow-colorIE特有屬性IE5.5 y設置滾動條槽的顏色
scrollbar-base-colorIE特有屬性IE5.5 y設置滾動條主要構成部分的顏色
scrollbar-track-colorIE特有屬性IE5.5 y設置滾動條軌跡組成部分的顏色

?由于放不了圖,各位還是自己直觀試試吧,一下是我的總結:

?1、關于scrollbar-dark-shadow-color屬性,我是在win7系統下測試Edge、IE10、9、8、7、5都沒有顯示什么,包括和其他屬性組合,也沒效果;

?2、這幾個元素的從屬關系:? ?scrollbar-face-color || scrollbar-arrow-color || scrollbar-shadow-color > scrollbar-track-color > scrollbar-highlight-color >scrollbar-base-color > scrollbar-3dlight-color;

?3、scrollbar-3dlight-color不論設置什么顏色,滾動條軌跡組成部分的顏色變為white色,滾動框和滾動條箭頭的顏色變淺灰色 ;

?4、scroll-base-color是一個備用顏色 ,在其他屬性不設置任何顏色時,滾動條顏色為此色,滾動框黑色,滾動軌跡為此色的淺色系,上下箭頭變深接近黑色;

?5、在只設置scrollbar-track-color或者只設置scrollbar-face-color時,上下兩個箭頭的顏色會變得比默認顏色深;

?6、在只設置scrollbar-face-color時候,滾動條軌跡組成部分的顏色變為white色;

?7、在只設置scrollbar-arrow-color時候,滾動條軌跡組成部分的顏色變為white色,滾動框和滾動條箭頭的顏色變淺灰色;

?8滾動條寬度無法設置,不能設置出弧度等形狀 。?

(二)webkit內核的“衣裳”

擁有webkit內核的瀏覽器差不多都支持下面的css屬性,下邊的偽元素最好放在css文件頂部,方便找。
::- webkit - scrollbar { } /* 滾動條整體部分,其中的屬性有width,height,background,border(就和一個塊級元素一樣)等 */
::- webkit - scrollbar - button { } /* 滾動條兩端的按鈕。可以用display:none讓其不顯示,也可以添加背景圖片,顏色改變顯示效果 */
::- webkit - scrollbar - track { } /* 外層軌道。可以用display:none讓其不顯示,也可以添加背景圖片,顏色改變顯示效果 */
::- webkit - scrollbar - track - piece { } /* 內層軌道,滾動條中間部分(除去)*/
::- webkit - scrollbar - thumb { } /* 滾動條里面可以拖動的那部分 */
::- webkit - scrollbar - corner { } /* 邊角 */
::- webkit - resizer { } /* 定義右下角拖動塊的樣 */?

eg:

html:?

<div class="main">
<div class="box">
<div class="box-ctn">Hello 。。。</div>
</div>
</div>

css:?

::-webkit-scrollbar { width: 10px; height: 10px; background: #f2f2f2; border: yellowgreen 1px solid; }
::-webkit-scrollbar-button { background-color:#267326; }
::-webkit-scrollbar-track { background:#9fdf9f; }
::-webkit-scrollbar-track-piece { background:url(http://pic.58pic.com/58pic/16/41/00/49F58PICmZg_1024.jpg); }
::-webkit-scrollbar-thumb { background:#339933; border-radius: 5px; }
::-webkit-scrollbar-corner { background:#ff0000; }
::-webkit-resizer { background:#ff0000; }
::-webkit-scrollbar-button:horizontal { background-color:#00a3cc; }
::-webkit-scrollbar-track:horizontal { background:#b3f0ff; }
::-webkit-scrollbar-thumb:vertical { background:#1ad1ff; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #267326; }
::-webkit-scrollbar-thumb:active { background: #267326; }
::-webkit-scrollbar-thumb:vertical:hover { background: #00a3cc; }
::-webkit-scrollbar-thumb:vertical:active { background: #00a3cc; }
::-webkit-scrollbar-button:decrement { border: 1px solid #00a3cc; }
::-webkit-scrollbar-button:increment { border: 1px solid #267326; }
/* ::-webkit-scrollbar-track:corner-present { display: none } */
/* ::-webkit-scrollbar-button:start { background-color: blue; }
::-webkit-scrollbar-button:end { background-color: green; } */?
.main {?
padding: 20px;
border: blue 1px dashed;
}
.box {
width: 500px;
height: 200px;
overflow: scroll;
}?
.box-ctn {
width: 3000px;
height: 1000px;
}?

這些偽元素還可以搭配很多偽類,英文鏈接, 漢文翻譯

:horizontal? ?主要應用于選擇水平方向滾動條,可以單獨設置水平方向的樣式

:vertical ? ? 主要是應用于選擇豎直方向滾動條,可以單獨設置垂直方向的樣式

:decrement? ?應用于按鈕和內層軌道(track piece)。它用來指示按鈕或者內層軌道是否會減小視窗的位置(比如,垂直滾動條的上面,水平滾動條的左邊。)

:increment? ?用來指示按鈕或內層軌道是否會增大視窗的位置(比如,垂直滾動條的下面和水平滾動條的右邊。)

: start ? ? 應用于按鈕和滑塊。它用來定義對象是否放到滑塊的前面。

:end? ?標識對象是否放到滑塊的后面。

:double-button? ?該偽類可以用于按鈕和內層軌道。用于判斷一個按鈕是不是放在滾動條同一端的一對按鈕中的一個。對于內層軌道來說,它表示內層軌道是否緊靠一對按鈕。

:single-button? ??類似于double-button偽類。對按鈕來說,它用于判斷一個按鈕是否自己獨立的在滾動條的一段。對內層軌道來說,它表示內層軌道是否緊靠一個single-button。

:no-button? ?用于內層軌道,表示內層軌道是否要滾動到滾動條的終端,比如,滾動條兩端沒有按鈕的時候。

:corner-present? ??用于所有滾動條軌道,指示滾動條圓角是否顯示。

:window-inactive? ??用于所有的滾動條軌道,指示應用滾動條的某個頁面容器(元素)是否當前被激活。(在webkit最近的版本中,該偽類也可以用于::selection偽元素。webkit團隊有計劃擴展它并推動成為一個標準的偽類)

:hover? ?鼠標懸浮時的效果

:active? ?被激活時的樣式

:enabled? ? 元素的可用狀態

:disabled? ?元素的禁用狀態

根據偽類可以增加滾動條的樣式以及一些動畫,我最常用的是 :hover、 :active 、:window-inactive,根據需求大家可以多多嘗試。

(三)Firefox的“衣裳”

這件可真是換不下來了

網上給了一些參考,但我試了試,沒弄明白,下面是連接,有興趣的看完會的,若不麻煩留言給個例子吧?

https://bbs.kafan.cn/thread-1529981-1-1.html?

參考文件:?

?小天地,大世界[https://www.lyblog.net]? ?https://www.lyblog.net/detail/314.html

?https://webkit.org/blog/363/styling-scrollbars/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370089.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370089.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370089.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電腦調分辨率黑屏了怎么辦_調顯示器分辨率黑屏怎么辦

調顯示器分辨率黑屏怎么辦調顯示器分辨率黑屏解決方法&#xff1a;1&#xff0c;開機&#xff0c;當快要進入系統選項時&#xff0c;立即按f8鍵進入“高級模式”&#xff0c;因為系統選項界面顯示的時間非常短&#xff0c;可以提早按f8鍵&#xff0c;否則錯過時機就得重來。2&a…

什么是JNDI,SPI,CCI,LDAP和JCA?

JNDI代表Java命名和目錄接口 。 它是用于提供對目錄服務&#xff08;即帶有對象的服務映射名稱&#xff08;字符串&#xff09;&#xff0c;對遠程對象或簡單數據的引用&#xff09;的訪問的API。 這就是所謂的 約束力 。 綁定集稱為上下文 。 應用程序使用JNDI接口訪問資源。…

android studio gradle 學習,學習Android Studio里的Gradle

一直聽說Gradle很強大&#xff0c;只是偶爾用Android Studio創建Demo的時候看到他一次&#xff0c;今天抽個時間完整記錄一下。1.gradle位置Android Studio項目創建好之后&#xff0c;默認有3個gradle文件&#xff0c;分別位于&#xff1a;/settings.gradle/build.gradle/app/b…

接口耗時打印并統計

1.可以利用Tomcat的access-log日志&#xff0c;讓其打印出http請求的每次耗時。可以在 config/server.xml里Host標簽下配置tomcat訪問日志格式 <Valve className"org.apache.catalina.valves.AccessLogValve" directory"logs" prefix&quo…

js內存

js在定義變量時完成了內存的分配 js具有自動垃圾回收機制&#xff0c;垃圾回收器會每隔固定的一段時間就執行一次釋放操作&#xff0c;即找出那些不再繼續使用的值&#xff0c;釋放其占用的內存 js中最常用的是通過標記清除的算法來找到哪些對象是不再繼續使用的&#xff0c;因…

halcon 圖像差分_Halcon編程-基于紋理的mara檢測

表面瑕疵檢測是機器視覺領域非常重要的一個應用。機器視覺是集光學、機電和計算機三個領域的一門不算新的技術。但目前表面瑕疵檢測在學界主要是計算機專業或者控制專業瞄準圖像處理方向在做&#xff0c;而視覺光學系統這一塊主要是光學工程專業在做。很少有研究者把這三塊都結…

Apache Camel入門

在先前的博文中&#xff0c;我們了解了企業集成模式&#xff08;EIP&#xff09;。 現在&#xff0c;在這篇文章中&#xff0c;我們將研究實現這些模式的Apache Camel框架。 關于駱駝&#xff1a; Apache Camel是一個開放源代碼項目&#xff0c;已有將近5年的歷史&#xff0c;…

css 寫打印樣式問題

&#xff08;1&#xff09;背景顏色打印不出來問題解決方法 background樣式要加上 !important&#xff1b;color樣式要加上 !important&#xff1b;-webkit-print-color-adjust: exact;然后記得瀏覽器打印設置里面要在“打印背景圖形”前面打勾。 -webkit-print-color-adjust:…

android studio smssdk,SMSSDK for Android 配置

1.集成之前先要申請Mob的appkey與appsecret2.在Mob官網下載最新SDK&#xff0c;解壓后會看到以下目錄結構&#xff1a;SMSSDK下存放的是短信SDK的全部內容。3.在android studio中加入SMS的第三方庫AS版本的SMSSDK目錄下包含以下內容&#xff1a;MobCommons.jar&#xff1a;Mob …

linux后臺不掛斷運行 nohup命令

//后臺常在 退出終端仍然運行 nohup python pyredis.py & nohup輸出重定向到my.log nohup command > my.log 2>&1 &轉載于:https://www.cnblogs.com/plxm/p/8136833.html

Ubuntu 16.04安裝微信

微信沒有出Linux的版本&#xff0c;但是可以通過以下方式解決&#xff1a; 1、使用網頁版&#xff0c;除了沒有公眾號之后&#xff0c;一切都沒問題&#xff0c;包括傳文件等。 網頁登錄地址&#xff1a;https://wx.qq.com/ 2、使用第三方版本&#xff0c;只不過這個是桌面應用…

navision系統和sap區別_SAP那些事-實戰篇-89-淺談金稅接口方案

以前金稅接口這塊一直是銷售顧問在做&#xff0c;雖然和財務相關&#xff0c;也沒有怎么關注。這次項目把金稅接口分到了財務模塊&#xff0c;結果遇到了一些問題&#xff0c;趁此機會把這塊總結一下方案&#xff0c;供各位看官參考。方案1&#xff1a; 文本方案&#xff0c;這…

不變性的來龍去脈

因此&#xff0c;在我的第一篇文章中&#xff0c;我談到了一些構建器模式&#xff0c;并提到了一個非常強大但卻被忽視的概念&#xff1a;不變性。 什么是不可變類&#xff1f; 這只是一個其實例無法修改的類。 類屬性的每個值都在其聲明或其構造函數中設置&#xff0c;并在對…

JavaScript總結(3)

第3章 獲取用戶的輸入 &#xff1c;script&#xff1e;10 intAprompt("請輸入第一個數字","");11 intBprompt("請輸入第二個數字",27);默認是2712 document.write("你輸入的第一個數字是"intA);13 document.write("&#xff1c;…

css書寫規范

在書寫css樣式的時候總是無意中就寫亂了&#xff0c;無論是命名或者是樣式的書寫順序&#xff0c;這里做一個總結&#xff0c;提醒自己在書寫css的時候時刻注意&#xff0c;大家可以參考哈。 1. 樣式屬性順序 單個樣式規則下的屬性在書寫時&#xff0c;應按功能進行分組&…

android 協程,關于android:Kotlin協程實現原理SuspendCoroutineContext

明天咱們來聊聊Kotlin的協程Coroutine。如果你還沒有接觸過協程&#xff0c;舉薦你先瀏覽這篇入門級文章What? 你還不曉得Kotlin Coroutine?如果你曾經接觸過協程&#xff0c;置信你都有過以下幾個疑難&#xff1a;協程到底是個什么貨色&#xff1f;協程的suspend有什么作用&…

清空easyui checkbox選中項

$(#dg).datagrid(unselectAll);轉載于:https://www.cnblogs.com/douhuan/p/7116744.html

python 編輯excel需要什么包_Python 中操作EXCEL表格的包

今天&#xff0c;馬云爸爸又來貢獻金句了&#xff0c;比王健林公公一億一個小目標還高&#xff0c;“一個月掙一二十個億很難受&#xff01;&#xff01;&#xff01;”&#xff0c;作為在傳統企業主要為電商部門提供數據分析的數據分析師&#xff0c;體驗太深刻了。雙11前后&a…

用Java處理大文件

最近&#xff0c;我不得不處理一組包含逐筆歷史匯率市場數據的文件&#xff0c;并很快意識到使用傳統的InputStream都無法將它們讀取到內存中&#xff0c;因為每個文件的大小都超過4 GB。 Emacs甚至無法打開它們。 在這種特殊情況下&#xff0c;我可以編寫一個簡單的bash腳本&…

java IO(一):File類

1.File類簡介 File類位于java.io包中。它面向文件層次級別操作、查看文件&#xff0c;而字節流、字符流操作數據時顯然比之更底層。 學習File類包括以下幾個重點&#xff1a;文件路徑、文件分隔符、創建文件(目錄)、刪除文件(目錄)、查看文件內容(輸出目錄內文件)、判斷文件(是…