首先,该练习参考自:https://www.jianshu.com/p/2961d9c317a3

我就直接上代码了(颜色可以自己调)。

HTML:

    <nav>
<li><a href="#">独秀不爱秀</a></li>
<li><a href="#">独秀不爱秀</a></li>
<li><a href="#">独秀不爱秀</a></li>
<li><a href="#">独秀不爱秀</a></li>
<li><a href="#">独秀不爱秀</a></li>
<li><a href="#">独秀不爱秀</a></li>
</nav>
<ul id="skin">
<li id="red"></li>
<li id="green" class="current"></li>
<li id="blue"></li>
</ul>

CSS:

        /* 公共部分 */
* {
margin:;
padding:;
}
html, body {
font-size: 16px;
transition: all 1s;
}
ul, nav {
list-style: none;
} /* 网页皮肤选择模块 */
#skin {
margin-left: 100px;
margin-top: 100px;
}
#skin li {
width: 50px;
height: 50px;
color: #fff;
line-height: 50px;
text-align: center;
border-radius: 50%;
}
#skin li + li {
margin-top: 10px;
}
#skin #red {
background-color: red;
border: 25px solid red;
}
#skin #green {
background-color: #009688bd;
border: 25px solid #009688bd;
}
#skin #blue {
background-color: blue;
border: 25px solid blue;
}
#skin li.current {
background-color: #fff!important;
}
#skin li:hover, #skin li:focus {
background-color: #fff!important;
} /* nav 模块 */
nav {
width: 700px;
height: 50px;
margin: 100px auto;
}
nav li {
width: 100px;
height: 50px;
float: left;
line-height: 50px;
text-align: center;
transition: all 1s;
       border: 1px solid #fff;
}
nav li + li {
margin-left: 10px;
}
nav li a {
color: #fff;
text-decoration: none;
}
nav li a:hover, nav li a:focus {
text-decoration: underline;
}

green.css

body {
background: #8bc34a;
}
nav li {
background-color: #009688bd;
}

red.css

body {
background: #9e9e9e5e;
}
nav li {
background-color: #ff5722eb;
}

blue.css

body {
background: #673ab7a6;
}
nav li {
background-color: #03a9f4a3;
}

JavaScript:

      window.onload = () => {
// 获取选择皮肤按钮
const skinLi = document.getElementById('skin').querySelectorAll('li');
// 获取 link 标签
const cssLink = document.getElementById('link'); for (let i = 0; i < skinLi.length; i++) {
skinLi[i].addEventListener('click', () => {
// 当点击每一个选择的时候先去除掉所有选择按钮的 class
for (ele in skinLi) {
skinLi[ele].className = '';
}
skinLi[i].className = 'current';
cssLink.href = `css/${skinLi[i].id}.css`;
});
}
};

css, js 项目练习之网页换肤的更多相关文章

  1. JS实现网页换肤功能效果

    网页换肤的基本原理 使用 JS 切换对应的 CSS 样式表.例如hao123首页的右上方就有网页换肤功能.除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie 来记录用户之前更换过 ...

  2. js网页换肤

    使网页背景颜色可选黄/粉 <html> <head> <meta charset="utf-8"> <meta name="ge ...

  3. 用js来实现页面的换肤功能(带cookie记忆)

    用js来实现页面的换肤功能 js实现换肤功能的实现主要是通过利用js控制CSS来实现的.大致的实现原理是这样的, 1.先定义一个页面基本样式style.css来确定div的宽高等属性,使得整个页面的D ...

  4. JavaScript网页换肤

    使网页背景颜色可选黄/粉 <!doctype html> <html> <head><title>网页换肤</title></head ...

  5. 基于js的网页换肤(不需要刷新整个页面,只需替换css文件)

    1. [代码][JS]代码    <HTML><HEAD><link ID="skin" rel="stylesheet" typ ...

  6. 【转】Javascript+css 实现网页换肤功能

    来源:http://www.php100.com/html/webkaifa/DIV_CSS/2008/1014/2326.html Html代码部分: 1.要有一个带id的样式表链接,我们要通过操作 ...

  7. 网页换肤,模块换肤,jQuery的Cookie插件使用(转)

    具体效果如下: 第一次加载如下图: 然后点击天蓝色按钮换成天蓝色皮肤如下图: 然后关闭网页重新打开或者在打开另一个网页如下图: 因为皮肤用Cookie保存了下来,所以不会重置 具体的实现代码如下: & ...

  8. jsp 引用css/js文件返回html网页问题

    我的问题: 我直接在web.xml中匹配了 “/” ,以为能默认使用 “localhost:8080/news/” 这种方式,直接进入首页. 但是这样会匹配所有url 因此请求的 ***.js/*** ...

  9. jquery网页换肤+jquery的cookie+动态调用css样式文件,可以的

    比较具有参考性,代码全贴(当然,还需要一张图片需要的留个邮箱,看到就发) 贴在这儿吧,修改一下css的引用位置应该可以用 <%@ page language="java" c ...

随机推荐

  1. selenium send_keys慢,卡,怎么办?这里有你想要的解决方案

    相信各位看官在用selenium时,会发现发送长字符时,一个字符一个字符在输入,特别在使用chrome时,更加明显. 如果你的网页是要大量编辑的怎么处理呢? 一.send_keys机制 既然问题出来了 ...

  2. Cantor表-(模拟)

    链接:https://ac.nowcoder.com/acm/contest/1069/I来源:牛客网 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一 ...

  3. Centos7安装MySQL(多图)

    文章目录 一.在线安装1.替换网易yum源2.清理缓存3.下载rpm文件4.安装MySQL数据库二.本地安装1.上传MySQL安装包2.安装依赖的程序包3.卸载mariadb程序包4.安装MySQL程 ...

  4. ESA2GJK1DH1K升级篇: 远程升级准备工作: 使用TCP客户端连接Web服务器实现http下载数据

    一,根目录建一个文件 二,使用浏览器访问 http://47.92.31.46:80/1.txt     或者  http://47.92.31.46/1.txt 三,使用TCP客户端访问文件内容 3 ...

  5. gnome3 调整标题栏高度

    适用于:gtk 3.20 + 1. 在用户主目录 -/.config/gtk3.0/ 下新建gtk.css文件: 2. 复制如下css值: headerbar.default-decoration { ...

  6. The import junit cannot be resolved解决问题

    第一次安装Junit,配置环境之后发现添加语句import junit.framework.TestCase; 编译错误 解决:项目右键Properties->Java Build Path-& ...

  7. 51Nod1353 树

    51Nod1353 树 传送门 思路 我们定义\(dp[i][j]\)代表第i个点联通块大小为j的方案总数,也可以把它理解为等待分配(不确定归属)的联通块大小为j的方案总数. 那么每次转移我们就使用一 ...

  8. 《Linux就该这么学》培训笔记_ch12_使用Samba或NFS实现文件共享

    <Linux就该这么学>培训笔记_ch12_使用Samba或NFS实现文件共享 文章最后会post上书本的笔记照片. 文章主要内容: SAMBA文件共享服务 配置共享资源 Windows挂 ...

  9. python 统计字符串中指定字符出现次数的方法

    python 统计字符串中指定字符出现次数的方法: strs = "They look good and stick good!" count_set = ['look','goo ...

  10. Alpha冲刺——测试篇

    课程信息 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺 团队目标 切实可行的计算机协会维修预约平台 团队信息 队员学号 队员姓名 个人博客地址 备注 22 ...