前端實現(xiàn)界面切換主題代碼示例
更新時間:2025年02月26日 10:39:43 作者:江戶川亮仔
這篇文章主要介紹了前端實現(xiàn)界面切換主題的相關(guān)資料,文中介紹了兩種方法,通過link標簽的rel屬性和通過變量設(shè)置,前者適用于確定的主題樣式切換,后者則適用于在拾色器中任意選擇顏色更換主題的情況,需要的朋友可以參考下
樣式切換主題
- 常用的主題切換實現(xiàn)方式之一,就是通過
link標簽的rel屬性來實現(xiàn)的 - 當
rel標簽的值是alternate,就代表該樣式是可以替換的 title屬性要加就全加上或者全不加,因為title會導(dǎo)致系統(tǒng)直接識別成樣式文件,意思就是如果兩個樣式文件,第一個沒有加該屬性,第二個加了該屬性,系統(tǒng)會直接使用有該屬性的樣式進行載入- 假如此時頁面有三個樣式文件,分別是:
default.css、dark.css、light.css - 可以通過激活可替換樣式即可實現(xiàn)主題的切換,適合確定的主題樣式之間切換
/* default.css */
body {
background-color: white;
}
/* dark.css */
body {
background-color: black;
}
/* light.css */
body {
background-color: lightcyan;
}
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>主題切換方案一</title>
<link type="text/css" href="css/default.css" rel="external nofollow" rel="stylesheet" title="default">
<link type="text/css" href="css/dark.css" rel="external nofollow" rel="stylesheet alternate" title="dark">
<link type="text/css" href="css/light.css" rel="external nofollow" rel="stylesheet alternate" title="light">
</head>
<body>
<select name="主題" onchange="changeTheme(this.value)">
<option value="default">默認</option>
<option value="dark">夜晚</option>
<option value="light">白天</option>
</select>
</body>
<script src="static/js/jquery.min.js"></script>
<script>
function changeTheme(theme) {
$('link').attr('disabled', true)
$(`link[title=${theme}]`).attr('disabled', false)
}
</script>
</html>

變量設(shè)置主題
- 上面是主題樣式文件之間的切換,對于那些在拾色器中任意選擇顏色更換主題的就不大適用了
- 這時候切換主題更適合通過變量去設(shè)置系統(tǒng)的主題
- 現(xiàn)在
:root中定義全局變量,然后通過var()在樣式中去使用變量,然后通過去setProperty修改該變量值即可更換主題樣式了
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>主題切換方案二</title>
<style>
:root {
--theme-color: #333333;
}
html {
background-color: var(--theme-color, "#E65A65");
}
</style>
</head>
<body>
<select name="主題" onchange="changeTheme(this.value)">
<option value="#333333">默認</option>
<option value="#1a7efc">藍色</option>
<option value="#16d46b">綠色</option>
<option value="#f1ce6b">黃色</option>
</select>
</body>
<script>
function changeTheme(theme) {
document.documentElement.style.setProperty('--theme-color', theme)
}
</script>
</html>
總結(jié)
到此這篇關(guān)于前端實現(xiàn)界面切換主題的文章就介紹到這了,更多相關(guān)前端界面切換主題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
一文詳解JavaScript有那些數(shù)據(jù)類型
在編程過程中,數(shù)據(jù)類型是重要的概念,為了能夠操作變量,了解數(shù)據(jù)類型是很重要的,這篇文章主要介紹了JavaScript有那些數(shù)據(jù)類型的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-02-02
Js表格萬條數(shù)據(jù)瞬間加載實現(xiàn)代碼
一條數(shù)據(jù)創(chuàng)建一行,如果數(shù)量大的時候,一次性要加載完數(shù)據(jù)的話,瀏覽器就會卡上半天,下面有個不錯的方法,大家可以參考下2014-02-02

