网站换肤,之前感觉总是很神奇啊,今天就来总结一下。我写的就是两种思路。
首先都需要建一个css文件夹,里面存放不同颜色的css文件:blue.css; red.css; yellow.css; green.css 在这几个文件中分别写好要改变的样式。
接下来就是html文件,首先第一种思路:只写一个link标签(不推荐,原因请继续阅读)。代码如下:
<!--index.html--> <head> <meta charset="UTF-8"> <title>动态换肤</title> <link rel="stylesheet" type="text/css" href="css/blue.css"> <style> *{ margin: 0; padding: 0; } div{ height: 50px; background-color: black; padding-left: 10px; } div section{ width: 30px; height: 30px; margin: 10px; display: inline-block; } div section:nth-of-type(1){ background-color: red; } div section:nth-of-type(2){ background-color: blue; } div section:nth-of-type(3){ background-color: green; } div section:nth-child(4){ background-color: yellow; } </style> </head> <body> <div> <section data-color="red"></section> <section data-color="blue"></section> <section data-color="green"></section> <section data-color="yellow"></section> </div> <script> var div = document.getElementsByTagName("div")[0]; //添加鼠标单击事件 div.onclick = function(event){ console.log(event.target); var ele = event.target; console.log(ele.tagName);//使用.tagName时,控制台输出全部大写,所以在下面的if判断中,使用“SECTION”. if(ele.tagName == 'SECTION'){ var color = ele.dataset.color; //var color = ele.getAttribute("data-color"); var link = document.createElement("link"); link.href = 'css/' + color + ".css"; link.rel = "stylesheet"; // 添加样式表到head,但是会造成页面样式表越来越多,所以不推荐 document.head.appendChild(link); } } </script> </body>
第一种思路是只写一个link,然后不断添加样式表到head,但是会造成页面样式表越来越多,所以不推荐。
第二种思路:写4个link标签,然后通过调节link的可用与否来实现网站换肤。代码如下:
<head> <meta charset="UTF-8"> <title>动态换肤</title> <link rel="stylesheet" type="text/css" href="css/blue.css"> <link rel="stylesheet" type="text/css" href="css/red.css"> <link rel="stylesheet" type="text/css" href="css/green.css"> <link rel="stylesheet" type="text/css" href="css/yellow.css"> <style> *{ margin: 0; padding: 0; } div{ height: 50px; background-color: black; padding-left: 10px; } div section{ width: 30px; height: 30px; margin: 10px; display: inline-block; } div section:nth-of-type(1){ background-color: blue; } div section:nth-of-type(2){ background-color: red; } div section:nth-of-type(3){ background-color: green; } div section:nth-child(4){ background-color: yellow; } </style> </head> <body> <div> <section data-color="0"></section> <section data-color="1"></section> <section data-color="2"></section> <section data-color="3"></section> </div> <script> var links = document.getElementsByTagName('link'); function enableLinks(index){ for(var i = 0;i < links.length; i++){//循环查找4个link标签 //disabled表示关闭,如果i不等于当前index,则disabled就是true,即关闭该link标签 //.sheet表示样式表 links[i].sheet.disabled = i!=index; } } enableLinks(2); //给div标签添加鼠标点击事件 //event:事件对象 document.querySelector('div').onclick = function(event){ var index = event.target.dataset.color; console.log(index); if(index == undefined){ return; }else{ //调用enableLinks() enableLinks(index); } } </script> </body>
注意两种方法的html部分section的自定义属性data-color,一个是颜色,一个是数字。

前幾天我得到了這個問題。我的第一個想法是:奇怪的問題!特異性是關於選擇者的,而在符號不是選擇器,那麼...無關緊要?

在這篇文章中,我們將使用我構建和部署的電子商務商店演示來進行Netlify,以展示如何為傳入數據製作動態路線。這是一個公平的


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1
強大的PHP整合開發環境