前端實(shí)現(xiàn)界面切換主題代碼示例
更新時(shí)間:2025年02月26日 10:39:43 作者:江戶川亮仔
這篇文章主要介紹了前端實(shí)現(xiàn)界面切換主題的相關(guān)資料,文中介紹了兩種方法,通過link標(biāo)簽的rel屬性和通過變量設(shè)置,前者適用于確定的主題樣式切換,后者則適用于在拾色器中任意選擇顏色更換主題的情況,需要的朋友可以參考下
樣式切換主題
- 常用的主題切換實(shí)現(xiàn)方式之一,就是通過
link標(biāo)簽的rel屬性來實(shí)現(xiàn)的 - 當(dāng)
rel標(biāo)簽的值是alternate,就代表該樣式是可以替換的 title屬性要加就全加上或者全不加,因?yàn)?nbsp;title會(huì)導(dǎo)致系統(tǒng)直接識(shí)別成樣式文件,意思就是如果兩個(gè)樣式文件,第一個(gè)沒有加該屬性,第二個(gè)加了該屬性,系統(tǒng)會(huì)直接使用有該屬性的樣式進(jìn)行載入- 假如此時(shí)頁面有三個(gè)樣式文件,分別是:
default.css、dark.css、light.css - 可以通過激活可替換樣式即可實(shí)現(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">默認(rèn)</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è)置主題
- 上面是主題樣式文件之間的切換,對(duì)于那些在拾色器中任意選擇顏色更換主題的就不大適用了
- 這時(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">默認(rèn)</option>
<option value="#1a7efc">藍(lán)色</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)于前端實(shí)現(xiàn)界面切換主題的文章就介紹到這了,更多相關(guān)前端界面切換主題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
一文詳解JavaScript有那些數(shù)據(jù)類型
在編程過程中,數(shù)據(jù)類型是重要的概念,為了能夠操作變量,了解數(shù)據(jù)類型是很重要的,這篇文章主要介紹了JavaScript有那些數(shù)據(jù)類型的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-02-02
Js表格萬條數(shù)據(jù)瞬間加載實(shí)現(xiàn)代碼
一條數(shù)據(jù)創(chuàng)建一行,如果數(shù)量大的時(shí)候,一次性要加載完數(shù)據(jù)的話,瀏覽器就會(huì)卡上半天,下面有個(gè)不錯(cuò)的方法,大家可以參考下2014-02-02
js實(shí)現(xiàn)隨機(jī)點(diǎn)名器精簡版
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)隨機(jī)點(diǎn)名器的精簡版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06

