在現代網頁中,如果內容高於瀏覽器或是元素區塊的高度,會出現滾動條方便瀏覽,一般瀏覽器預設為灰色的樣式。
但有時候網站的風格,跟預設的滾動條樣式,與網站的整體設計風格產生不協調,為了解決這個問題,我們可以利用 ::-webkit-scrollbar
來來自訂滾動條外觀,從而提升網站的視覺一致性和用戶體驗。
💠 ::-webkit-scrollbar
基本用法
語法
1 | 選擇器::-webkit-scrollbar { |
::-webkit-scrollbar
:控制整個滾動條的樣式::-webkit-scrollbar-thumb
:控制滑動條的樣式
範例
一起試試:[CODEPEN]
以下 HTML 為範例模板
1 | <div class="box scrollbar"> |
1 | .box { |
範例一:更改滾動條顏色
1 | .scrollbar::-webkit-scrollbar { |
範例二:隱藏滾動條
直接將 display: none
應用於 ::-webkit-scrollbar
可以隱藏滾動條,但仍然允許滾動。
1 | .scrollbar::-webkit-scrollbar { |
範例三:調整滾動條寬度
可以將滾動條變得更細,以與網頁的設計風格更加協調。
1 | .scrollbar::-webkit-scrollbar { |
瀏覽器相容性
你可能會發現 ::-webkit-scrollbar
依然有個前綴 -webkit-
,這代表功能還並非為標準的 CSS 規範,因此不同的瀏覽器引擎採用了各自的方式來提供類似的功能, -webkit-
前綴允許 WebKit 瀏覽器(如 Safari 和 Chrome)支援這些功能,但對於其他瀏覽器(如 Firefox)無法支援
那 Firefox 就不管了嗎?
當然不行~我們可以使用 scrollbar-color
CSS 屬性
💠 scrollbar-color
基本用法
語法
1 | 選擇器 { |
範例
一起試試:[CODEPEN]
以下 HTML 為範例模板
1 | <div class="box scrollbar"> |
1 | .box { |
範例一:滾動條顏色修改
1 | .scrollbar { |
範例二:隱藏滾動條
通過將滾動條顏色設置為透明來隱藏它,這樣用戶仍然可以滾動內容。
1 | .scrollbar { |
範例三:調整滾動條寬度
使用 scrollbar-width
來改變滾動條的寬度,如將其設為 thin
可以縮小滾動條。
1 | .scrollbar { |
瀏覽器相容性
太好了~!那我們就直接使用 scrollbar-color
來設定滾動條樣式就好了!
如果你是這樣想就大錯特錯了!
我們可以看到 scrollbar-color
對於主流瀏覽器的支援度,目前對於 Safari 是不支援的
那這樣我們要換放棄 Safari 了嗎?
作為一個前端開發者是不會讓這種事情發生的!
還記得前面講到的 ::-webkit-scrollbar
是支援 Safari 的嗎?我們可以將兩種寫法都加上,確保樣式在任何主流瀏覽器皆可以出現
💠 滾動條相容樣式
一起試試:[CODEPEN]
由於 ::-webkit-scrollbar
和 scrollbar-color
屬於不同的瀏覽器支援範疇,建議在設計時將這兩者結合使用。
1 | .scrollbar { |
要確保最大化的相容性,你可以透過 @supports
,針對不同瀏覽器的能力進行檢測,避免讓瀏覽器處理不支援的樣式,減少樣式處理的複雜度。
1 | @supports (scrollbar-color: auto) { |
💠 總結
常常遇到網站的風格跟滾動條樣式非常的不搭,看起來就會很突兀,但通過使用 ::-webkit-scrollbar
與 scrollbar-color
可以調整滾動條的外觀,對於網站是非常的實用!無論是在 Chrome、Safari 還是 Firefox 等主流瀏覽器中,都能達到一致的效果。
Reference
🚀實體工作坊分享
玩轉 Web頁面的前端技術(HTML/CSS/JS) 一日體驗課
最近時賦學苑開了實體體驗課,即使你對程式碼沒有概念也能上手!Lala 會帶你一起做出一個個人品牌形象網站,帶你快速了解前端的開發流程,快跟我們一起玩轉 Web 吧!🚀線上課程分享
線上課程可以加速學習的時間,省去了不少看文件的時間XD,以下是我推薦的一些課程想學習更多關於前後端的線上課程,可以參考看看。
Hahow
Hahow 有各式各樣類型的課程,而且是無限次數觀看,對學生或上班族而言,不用擔心被時間綁住六角學院
如果你是初學者,非常推薦六角學院哦!剛開始轉職也是上了六角的課,非常的淺顯易懂,最重要的是,隨時還有線上的助教幫你解決問題!
Udemy
Udemy 裡的課程非常的多,品質普遍不錯,且價格都滿實惠的,CP值很高!也是很多工程師推薦的線上課程網站。