亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態替換css文件(并將新樣式應用于頁面)

動態替換css文件(并將新樣式應用于頁面)

慕村225694 2019-08-31 10:50:58
我有一個頁面,<link>在標題中加載了名為的CSS light.css。我還有一個名為的文件dark.css。我想要一個按鈕來交換頁面的樣式(css文件中有40個選擇器,有些在兩個文件中不匹配)。如何刪除對light.cssJS的引用并刪除所有應用的樣式,然后dark.css從中加載并應用所有樣式?我不能簡單地重置所有元素,因為一些樣式是通過不同的css文件應用的,有些是由JS動態生成的。沒有重新加載頁面,有沒有一種簡單而有效的方法呢?香草JS是首選,但我會使用jQuery進行后續處理,所以jQ也沒關系。
查看完整描述

4 回答

?
qq_力學篤行_0

TA貢獻1條經驗 獲得超0個贊

大佬你好,我想問下你之前做的react 后臺管理系統 有demo地址或者 github地址嗎我想參考下,不勝感激

查看完整回答
反對 回復 2019-09-03
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您可以創建一個新鏈接,并用新鏈接替換舊鏈接。如果將它放在一個函數中,您可以在需要的地方重用它。


Javascript:


function changeCSS(cssFile, cssLinkIndex) {


    var oldlink = document.getElementsByTagName("link").item(cssLinkIndex);


    var newlink = document.createElement("link");

    newlink.setAttribute("rel", "stylesheet");

    newlink.setAttribute("type", "text/css");

    newlink.setAttribute("href", cssFile);


    document.getElementsByTagName("head").item(0).replaceChild(newlink, oldlink);

}

HTML:


<html>

    <head>

        <title>Changing CSS</title>

        <link rel="stylesheet" type="text/css" href="positive.css"/>

    </head>

    <body>

        <a href="#" onclick="changeCSS('positive.css', 0);">STYLE 1</a> 

        <a href="#" onclick="changeCSS('negative.css', 0);">STYLE 2</a>

    </body>

</html>

為簡單起見,我使用了內聯javascript。在制作中,您可能希望使用不顯眼的事件偵聽器。


查看完整回答
反對 回復 2019-08-31
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

如果在link元素上設置ID


<link rel="stylesheet" id="stylesheet" href="stylesheet1.css"/>

你可以用Javascript來定位它


document.getElementsByTagName('head')[0].getElementById('stylesheet').href='stylesheet2.css';

要不就..


document.getElementById('stylesheet').href='stylesheet2.css';

這是一個更徹底的例子:


<head>

    <script>

    function setStyleSheet(url){

       var stylesheet = document.getElementById("stylesheet");

       stylesheet.setAttribute('href', url);

    }

    </script>


    <link id="stylesheet" rel="stylesheet" type="text/css" href="stylesheet1.css"/>

</head>

<body>

    <a onclick="setStyleSheet('stylesheet1.css')" href="#">Style 1</a>

    <a onclick="setStyleSheet('stylesheet2.css')" href="#">Style 2</a>

</body>


查看完整回答
反對 回復 2019-08-31
  • 4 回答
  • 1 關注
  • 1446 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號