用CSS建立滾動條樣式的藝術

用CSS建立滾動條樣式的藝術
在網頁設計中,細緻入微地關注每一個元素對於打造既有視覺誘惑力又能深深吸引人的使用者體驗至關重要。滾動條是一個通常被忽視的元素,但它可以通過調整來增強網站的整體美感和氛圍。通過對滾動條應用 CSS,你可以將其從預設外觀轉變為一個無縫整合的元件,與網站的設計美學相得益彰。

自定義滾動條有幾個好處。最重要的是,它能讓你的網站保持統一性和一致性。通過將滾動條的風格與網站其他部分的配色方案、排版和整體設計相匹配,您就能創造出具有凝聚力的視覺體驗,讓人感覺光鮮而專業。

此外,滾動條樣式還有助於提高可用性。通過使滾動條在視覺上更加突出或明顯,使用者可以輕鬆定位和瀏覽冗長的內容,從而獲得更愉快、更高效的瀏覽體驗。自定義滾動條還能提供視覺反饋,讓使用者在滾動瀏覽頁面時瞭解自己的進度。

幸運的是,現代網路瀏覽器提供了一系列 CSS 屬性偽元素,讓你可以為滾動條設計樣式。只要掌握一些 CSS 知識併發揮創造力,你就能將預設滾動條轉變為具有視覺吸引力的功能性元素,從而提升網站的設計水平。

在下面的文章中,我們將深入探討 CSS 滾動條樣式的基本概念,包括可以利用的關鍵屬性。我們還將深入探討更高階的技術,例如使用偽元素CSS 動畫來建立獨特、動態的滾動條樣式。此外,我們還會討論一些常見錯誤,幫助你實現完美的滾動條樣式。學習結束後,你將掌握定製滾動條的工具和知識,並提升網站的整體視覺體驗。

CSS 滾動條基本樣式

在本節中,我們將探討 CSS 滾動條樣式的基礎知識及其主要屬性。以下是與滾動條相關的主要屬性:

scrollbar-width 屬性控制滾動條的寬度。預設情況下,該值為 auto,讓瀏覽器根據平臺或使用者代理決定寬度。不過,你也可以通過選擇 thinauto 來改變這一功能,以強制執行特定的寬度。

另一方面, scrollbar-track-color 屬性允許你明確設定滾動條軌跡的顏色。它等同於在 scrollbar-color 屬性中指定軌道顏色值,而無需定義滑塊顏色。

例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Setting scrollbar track color explicitly */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background-color: #91d4c9; /* Track color */
}
/* Setting scrollbar track color explicitly */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background-color: #91d4c9; /* Track color */ }
/* Setting scrollbar track color explicitly */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background-color: #91d4c9; /* Track color */
}

該程式碼用於設定滾動條的寬度,滾動條是出現在可滾動元素側面或底部的垂直或水平條。在本示例中,垂直滾動條的寬度設定為 8px。它還將滾動條的軌跡顏色設定為 #91d4c9

自定義滾動條示例

在這裡,我們可以看到 scrollbar-track-color 設定為 #91d4c9,滾動條的寬度為 8px

scrollbar-track-color 類似,該屬性明確設定滾動條滑塊的顏色,而無需定義軌道顏色。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Setting scrollbar thumb color explicitly */
::-webkit-scrollbar-thumb {
scrollbar-thumb-color: #888; /* Thumb color */
}
/* Setting scrollbar thumb color explicitly */ ::-webkit-scrollbar-thumb { scrollbar-thumb-color: #888; /* Thumb color */ }
/* Setting scrollbar thumb color explicitly */
::-webkit-scrollbar-thumb {
scrollbar-thumb-color: #888; /* Thumb color */
}

滾動條的滑塊顏色被設定為 #888

這裡,滾動條的滑塊顏色被設定為 #888

該屬性決定滾動條滑塊的半徑或曲率。預設情況下,設定為 “auto“,即渲染矩形滑塊。您可以使用長度值或百分比為滑塊建立圓角。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Setting scrollbar thumb radius */
::-webkit-scrollbar-thumb {
border-radius: 4px; /* Rounded thumb */
}
/* Setting scrollbar thumb radius */ ::-webkit-scrollbar-thumb { border-radius: 4px; /* Rounded thumb */ }
/* Setting scrollbar thumb radius */
::-webkit-scrollbar-thumb {
border-radius: 4px; /* Rounded thumb */
}

圓角滑塊滾動條

在上面的示例中,border-radius 屬性用於為 scrollbar thumb 新增圓角。scrollbar-thumb 的半徑為 4px,這使得滑塊看起來更圓潤。

注意:基於 WebKit 的瀏覽器(如 Chrome 和 Safari)支援這些屬性。請記住,不同的瀏覽器可能會對這些屬性使用不同的字首版本。通過調整這些屬性,你可以開始自定義滾動條外觀的過程。嘗試使用不同的值,並將它們與其他 CSS 屬性相結合,以達到你想要的視覺效果。

高階 CSS 滾動條樣式

讓我們利用偽元素CSS 動畫探索高階 CSS 滾動條樣式技術。

  • 偽元素為滾動條軌道和滑塊設計樣式

通過使用偽元素(如 ::-webkit-scrollbar-track::-webkit-scrollbar-thumb ),你可以單獨為滾動條的不同元件設定樣式。

例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Adjusting the scrollbar track's style */
::-webkit-scrollbar-track {
background-color: #f5f5f5;
}
/* Customizing the appearance of the scrollbar thumb */
::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 4px;
}
/* Altering the scrollbar thumb's look when hovered */
::-webkit-scrollbar-thumb:hover {
background-color: #333;
}
/* Adjusting the scrollbar track's style */ ::-webkit-scrollbar-track { background-color: #f5f5f5; } /* Customizing the appearance of the scrollbar thumb */ ::-webkit-scrollbar-thumb { background-color: #888; border-radius: 4px; } /* Altering the scrollbar thumb's look when hovered */ ::-webkit-scrollbar-thumb:hover { background-color: #333; }
/* Adjusting the scrollbar track's style */
::-webkit-scrollbar-track {
background-color: #f5f5f5;
}
/* Customizing the appearance of the scrollbar thumb */
::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 4px;
}
/* Altering the scrollbar thumb's look when hovered */
::-webkit-scrollbar-thumb:hover {
background-color: #333;
}

在上例中,滾動條軌道的背景採用 #f5f5f5 顏色,而滾動條滑塊的背景為 #888,邊框半徑為 4px。此外,將滑鼠懸停在滾動條滑塊上時,其背景會轉換為 #333

CSS 動畫可為滾動條提供動態效果,增強其視覺吸引力。你可以在 ::-webkit-scrollbar::-webkit-scrollbar-thumb 等偽元素上應用動畫。

例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/* Defining the animation for thumb color transition */
@keyframes thumbColorTransition {
0% {
background-color: #888;
}
50% {
background-color: #555;
}
100% {
background-color: #888;
}
}
/* Applying the defined animation to the scrollbar thumb */
::-webkit-scrollbar-thumb {
animation: thumbColorTransition 2s infinite;
}
/* Defining the animation for thumb color transition */ @keyframes thumbColorTransition { 0% { background-color: #888; } 50% { background-color: #555; } 100% { background-color: #888; } } /* Applying the defined animation to the scrollbar thumb */ ::-webkit-scrollbar-thumb { animation: thumbColorTransition 2s infinite; }
/* Defining the animation for thumb color transition */
@keyframes thumbColorTransition {
0% {
background-color: #888;
}
50% {
background-color: #555;
}
100% {
background-color: #888;
}
}
/* Applying the defined animation to the scrollbar thumb */
::-webkit-scrollbar-thumb {
animation: thumbColorTransition 2s infinite;
}

在上面提供的案例中,定義了一個名為 thumb-color-animation 的 CSS 動畫。該動畫會平滑地改變滾動條滑塊的背景顏色,在 #888#555 之間反覆擺動。然後使用 animation 屬性將該動畫分配給滾動條滑塊。

該動畫分配給滾動條滑塊

需要注意的是, ::-webkit-scrollbar 及其相關偽元素僅適用於基於 WebKit 的瀏覽器,如 Chrome 和 Safari。其他瀏覽器可能有自己的實現或支援不同的語法。

常見錯誤及避免方法

在處理 CSS 滾動條的外觀時,開發人員可能會遇到一些典型錯誤。以下是其中幾種,以及如何避免它們的提示:

  • 忽視瀏覽器相容性:我們只關注基於 WebKit 的瀏覽器(如 Chrome 和 Safari),而忽略了其他瀏覽器,因為它們可能對滾動條樣式有不同的實現或語法。在不同的瀏覽器上測試滾動條樣式,確保非 WebKit 瀏覽器的優雅降級。考慮使用供應商字首和替代技術(如基於 JavaScript 的滾動條庫)來實現一致的樣式。
  • 設計過於複雜:在滾動條上應用過多的視覺效果或複雜的動畫可能會導致雜亂無章或分散使用者注意力。滾動條的設計應簡潔明瞭,與網站的整體外觀保持一致。謹慎使用動畫和特效,確保它們能為使用者體驗做出積極貢獻,而不是造成干擾。
  • 忽視可訪問性考慮:有時,我們建立的滾動條樣式會影響可訪問性,例如滾動條與背景之間的對比度過低、滾動條大小不足以方便互動,或者刪除了預設的滾動條功能。確認所有使用者都能使用滾動條。保持滾動條與背景之間足夠的對比度,提供足夠的可見空間以方便互動,並避免移除滾動條的核心功能,如滾動箭頭或軌跡點選。
  • 完全依賴自定義滾動條:大多數情況下,我們會用自定義樣式完全取代預設滾動條,而不考慮使用者的熟悉程度和瀏覽器的一致性。雖然自定義滾動條是一種選擇,但重要的是要在自定義設計和保持熟悉的使用者體驗之間取得平衡。可以考慮對預設滾動條進行微妙的改進,而不是完全替換,以確保使用者仍能直觀地識別並與之互動。
  • 缺乏測試和使用者反饋:大多數開發人員未能在不同裝置、螢幕尺寸和使用者場景下對滾動條樣式進行全面測試。在不同裝置、螢幕解析度和瀏覽器上測試滾動條樣式,以確保行為的一致性和可靠性。徵求使用者反饋,並根據實際使用情況對設計進行反覆修改,以提高可用性並解決任何問題。

通過避免這些常見錯誤,您可以建立有效且使用者友好的滾動條樣式,從而在不影響可訪問性或相容性的前提下提升整體瀏覽體驗。

小結

自定義滾動條是為網站新增個人風格並使其更加友好的好方法。通過使用自定義 CSS 屬性,你可以控制滾動條的外觀,併為你的網站建立更協調的外觀和感覺。

因此,如果你想讓自己的網站更獨特、更方便使用者使用,不妨考慮自定義滾動條!

評論留言