prefers-color-scheme:讓網站自動適應系統深淺色模式的完整指南
在講解 prefers-color-scheme 之前,我們先想想這個問題:為什麼現在越來越多網站都開始支援深淺色模式的自動切換?根據使用者體驗設計的發展趨勢,自適應的介面設計已經成為現代 Web 開發的必備技能。
本篇文章將會涵蓋以下重點:
- 什麼是 prefers-color-scheme 以及它如何運作
- 基本語法與實作方式
- 瀏覽器支援情況與相容性考量
- 完整的實戰演練,從程式碼到實際測試
- 常見問題與解決方案
什麼是 prefers-color-scheme?
prefers-color-scheme 是一個 CSS 媒體查詢(Media Query),專門用來偵測 使用者作業系統的配色方案偏好。換句話說,它可以讓我們的網站自動判斷使用者是偏好淺色模式還是深色模式,並且相應地調整網站的樣式。
值得一提的是,這個功能讓網站能夠與使用者的系統設定保持一致,提供更舒適且無縫的使用體驗。
基礎語法:如何使用 prefers-color-scheme?
接下來我們來看看 prefers-color-scheme 的基本語法。建議先從簡單的範例開始理解,再逐步深入:
/* 深色模式樣式 */
@media (prefers-color-scheme: dark) {
body {
background-color: #121212; /* 深色背景 */
color: #ffffff; /* 白色文字 */
}
}
/* 淺色模式樣式 */
@media (prefers-color-scheme: light) {
body {
background-color: #ffffff; /* 白色背景 */
color: #000000; /* 黑色文字 */
}
}
prefers-color-scheme 有哪些可用值?
我們可以使用以下三個值來偵測不同的使用者偏好:
- light:當使用者的作業系統設定為淺色模式時觸發
- dark:當使用者的作業系統設定為深色模式時觸發
- no-preference:使用者沒有設定特定偏好,通常會回到預設樣式
為什麼要使用 prefers-color-scheme?
根據現代 Web 開發的最佳實務,使用 prefers-color-scheme 有以下幾個優點:
- 自動適應使用者習慣:網站會根據使用者裝置(如 macOS、Windows、Android 或 iOS)的系統設定自 動調整配色
- 無需額外 JavaScript:使用純 CSS 即可實現主題切換,減少程式碼複雜度和載入時間
- 提升使用體驗:提供與系統一致的視覺體驗
瀏覽器支援情況如何?
prefers-color-scheme 在現代瀏覽器中有著良好的支援度:
- ✅ Chrome 76+
- ✅ Firefox 67+
- ✅ Safari 12.1+
- ✅ Edge 79+
- ✅ 大多數現代行動裝置
這意味著我們可以放心地在生產環境中使用這個功能。對於不支援的舊版瀏覽器,我們的網站會正常顯示預設樣式,不會有任何問題。
實戰演練:完整範例與測試
現在讓我們透過實際的程式碼來體驗 prefers-color-scheme 的效果。建議跟著下面的步驟一起操作,這樣可以更深刻理解它的運作方式。