網站換膚

来源:http://www.cnblogs.com/ksl666/archive/2016/10/10/5944812.html
-Advertisement-
Play Games

網站換膚,之前感覺總是很神奇啊,今天就來總結一下。我寫的就是兩種思路。 首先都需要建一個css文件夾,裡面存放不同顏色的css文件:blue.css; red.css; yellow.css; green.css 在這幾個文件中分別寫好要改變的樣式。 接下來就是html文件,首先第一種思路:只寫一個 ...


網站換膚,之前感覺總是很神奇啊,今天就來總結一下。我寫的就是兩種思路。

首先都需要建一個css文件夾,裡面存放不同顏色的css文件:blue.css; red.css; yellow.css; green.css 在這幾個文件中分別寫好要改變的樣式。

接下來就是html文件,首先第一種思路:只寫一個link標簽(不推薦,原因請繼續閱讀)。代碼如下:

 1 <!--index.html-->
 2 <head> 
 3 <meta charset="UTF-8">
 4 <title>動態換膚</title>
 5 <link rel="stylesheet" type="text/css" href="css/blue.css">
 6 <style>
 7 *{ margin: 0; padding: 0; }
 8 div{
 9     height: 50px; 
10     background-color: black; 
11     padding-left: 10px;
12 }
13 div section{
14     width: 30px; 
15     height: 30px; 
16     margin: 10px; 
17     display: inline-block; 
18 }
19 div section:nth-of-type(1){
20     background-color: red; 
21 }
22 div section:nth-of-type(2){
23     background-color: blue; 
24 }
25 div section:nth-of-type(3){
26     background-color: green; 
27 }
28 div section:nth-child(4){
29     background-color: yellow; 
30 }
31 </style>
32 </head>
33 <body>
34 <div>
35 <section data-color="red"></section>
36 <section data-color="blue"></section>
37 <section data-color="green"></section>
38 <section data-color="yellow"></section>
39 </div>
40 <script>
41 var div = document.getElementsByTagName("div")[0];
42 //添加滑鼠單擊事件
43 div.onclick = function(event){
44 console.log(event.target);
45 var ele = event.target;
46 console.log(ele.tagName);//使用.tagName時,控制台輸出全部大寫,所以在下麵的if判斷中,使用“SECTION”.
47 if(ele.tagName == 'SECTION'){
48 var color = ele.dataset.color;
49 //var color = ele.getAttribute("data-color");
50 var link = document.createElement("link");
51 link.href = 'css/' + color + ".css";
52 link.rel = "stylesheet";
53 // 添加樣式表到head,但是會造成頁面樣式表越來越多,所以不推薦
54 document.head.appendChild(link); 
55 }
56 }
57 </script>
58 </body>

第一種思路是只寫一個link,然後不斷添加樣式表到head,但是會造成頁面樣式表越來越多,所以不推薦。

第二種思路:寫4個link標簽,然後通過調節link的可用與否來實現網站換膚。代碼如下:

 1 <head>
 2 <meta charset="UTF-8">
 3 <title>動態換膚</title>
 4 <link rel="stylesheet" type="text/css" href="css/blue.css">
 5 <link rel="stylesheet" type="text/css" href="css/red.css">
 6 <link rel="stylesheet" type="text/css" href="css/green.css">
 7 <link rel="stylesheet" type="text/css" href="css/yellow.css">
 8 <style>
 9 *{ margin: 0; padding: 0; }
10 div{ 
11     height: 50px; 
12     background-color: black;
13     padding-left: 10px; 
14 }
15 div section{ 
16     width: 30px; 
17     height: 30px; 
18     margin: 10px; 
19     display: inline-block; 
20 }
21 div section:nth-of-type(1){ 
22     background-color: blue; 
23 }
24 div section:nth-of-type(2){ 
25     background-color: red; 
26 }
27 div section:nth-of-type(3){ 
28     background-color: green; 
29 }
30 div section:nth-child(4){ 
31     background-color: yellow; 
32 }
33 </style>
34 </head>
35 <body>
36 <div>
37 <section data-color="0"></section>
38 <section data-color="1"></section>
39 <section data-color="2"></section>
40 <section data-color="3"></section>
41 </div>
42 <script>
43 var links = document.getElementsByTagName('link');
44 function enableLinks(index){
45 for(var i = 0;i < links.length; i++){//迴圈查找4個link標簽
46 //disabled表示關閉,如果i不等於當前index,則disabled就是true,即關閉該link標簽
47 //.sheet表示樣式表
48 links[i].sheet.disabled = i!=index;
49 }
50 }
51 enableLinks(2);
52 //給div標簽添加滑鼠點擊事件
53 //event:事件對象
54 document.querySelector('div').onclick = function(event){
55 var index = event.target.dataset.color;
56 console.log(index);
57 if(index == undefined){
58 return;
59 }else{
60 //調用enableLinks()
61 enableLinks(index);
62 }
63 }
64 </script>
65 </body>

註意兩種方法的html部分section的自定義屬性data-color,一個是顏色,一個是數字。

如有錯誤,請您指正!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Atitit Atitit.軟體相容性原理 API相容 Qa7 1. 相容性的重要性與反面教材1 2. 提升相容性的原則2 2.1. What 與how 分離2 2.2. 老人老辦法,新人新辦法,只新增,少修改,莫刪除3 2.3. 計劃趕不上變化,永遠api修改也不可能整齊劃一,反而帶來不相容的風險 ...
  • 回到目錄 對於IoC容器來說,性能最好的莫過於Autofac了,而對於靈活度來說,它也是值得稱贊的,為了考慮系統的性能,我們經常是在系統初始化於將所有依賴註冊到容器里,當需要於根據別名把實現拿出來,然後再使用即可;而如果每次使用都是註冊-反射,我相信那是很耗性能的,所以我們決定先依賴一次註冊,按需反 ...
  • SpringBootService,這是一個spring boot微服務的框架,包括redis,mq,restful,定時器,mybatis。易擴容、易維護的架構。 項目說明 該項目使用maven進行管理,可直接在maven projects下Plugins的spring-boot中運行.切記勿忘數 ...
  • XML語言 什麼是XML? XML是指可擴展標記語言(eXtensible Markup Language),它是一種標記語言,很類似HTML。它被設計的宗旨是傳輸數據,而非顯示數據。 XML標簽沒有被預定義,需要用戶自行定義標簽。 XML技術是W3C組織(World Wide Web Consor ...
  • 一、什麼是設計模式 在軟體開發中,設計模式是對軟體設計中普遍存在的一些問題,所使用的解決方案 也就是說:設計模式是一套被反覆使用、多數人知曉的、經過分類的、代碼設計的 經驗的總結 使用設計模式可以達到代碼重用,讓代碼閱讀性更高,同時保證了代碼的可靠性。 由於java種具有23種設計模式,但都遵循著6 ...
  • 最近一直在研究javascript腳本,熟悉DOM中CSS樣式的各種定位屬性,以前對這個屬性不太瞭解,從網上找到兩篇文章感覺講得很透徹,收藏下來,唯恐忘記。一.解讀absolute與relative http://www.blueidea.com/tech/web/2006/4249.asp很多朋友 ...
  • 近期,面試我們總會遇到這樣一個面試題: 現在網上答案很多苟同,但是我還是想在重覆的述說一遍,俗話說:好記憶不如爛筆頭, 雖然常見,簡單,反覆出現,總之,在簡單的多寫寫記憶還是很深刻的,即使忘了,也能拿出來翻翻。 代碼如下:(簡單些) html代碼 <ul> <li>香蕉</li> <li>蘋果</l ...
  • 目的 value綁定主要用於DOM元素給視圖模型賦值用的。通常用於 有很多時候,我們希望下拉列表中包含一個空白的或者沒有包含在數據集合中的元素,比如choose one…,那麼就可以使用valueAllowUnset:true來帶到目的。如上述例子一樣。 selectedCountry將保留Latv... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...