网站换肤方案汇总

1、实现网站换肤功能,一般最先想到的是用全局class控制样式切换
缺点:全局控制CSS,在项目不大,换肤样式不多的情况下,还能勉强够用。但是换肤样式很多的话,
代码会非常臃肿,不利于维护。

2、切换引入CSS样式的href属性值,来达到切换样式的目的。

 <link id="skin" rel="stylesheet" href="./skin/skin.css"> document.querySelector(‘#skin‘).href = ""

 缺点:使用JS改变href属性会带来加载延迟,样式切换不流畅的弊端。

3、通过JS替换CSS文件中换肤样式的属性值来实现换肤。

样式多的话代码会臃肿,样式切换不流畅

缺点:IE兼容性差

4、在翻阅CSS MDN的时候,发现link标签的rel属性有一个alternate属性值可以实现控制CSS加载。

4.1、没有title属性,rel属性值仅仅是stylesheet的<link>会默认加载并渲染
4.2、有title属性,rel属性值仅仅是stylesheet的<link>作为默认样式CSS文件加载并渲染,如:theme-default.css
4.3、有title属性,rel属性值同时包含alternate stylesheet的<link>作为备选样式,CSS文件会加载但默认不渲染。如:theme-wsjd.css

alternate是一个非常有意思的特性,我们可通过JS控制该CSS是否渲染,使用JavaScript修改<link>
元素DOM对象的disabled值为false,可以让默认不渲染的CSS开始渲染,设为true则不渲染。

原文地址:https://www.cnblogs.com/zixian/p/css_js.html

时间: 2024-10-09 22:52:47

网站换肤方案汇总的相关文章

.NET Web后台动态加载Css、JS 文件,换肤方案

后台动态加载文件代码: //假设css文件:TestCss.css #region 动态加载css文件 public void AddCss() { HtmlGenericControl _CssFile = new HtmlGenericControl("link"); _CssFile.ID = "CssFile"; _CssFile.Attributes["rel"] = "stylesheet"; _CssFile.A

iOS客户端节日换肤方案探究

转自:https://www.ianisme.com的博客 一.前言: tip: 本来这篇文章在圣诞节就已经准备好了,但是由于种种原因一直没有写完,今天将它写出来,也算是2018年的第一篇文章了.你好,2018! 过去圣诞节是各大APP浓妆艳抹展现自己衣服的节日,今年的圣诞节似乎冷清了许多,只看到了几个APP换肤,那我就从中分析一下吧. 二.分析: 我认为目前的换肤主要分成3种,一种是返回图片的地址,APP再根据图片日志去取图片,另一种是下载zip包然后再解压去替换图标,再一种是图片资源放到包里

Delphi中实现ListView滚动条的换肤方案

首先是要骗过WM_NCPAINT消息.这个十分容易.WM_NCPAINT消息的wParam是一个区域的句柄.当它不为1时,从它里面CLIP掉滚动条的区域,再传给原窗口过程即可.当它为1时,创建一个包含控件全客户区域的Region,再从中CLIP掉滚动条的区域,传给原窗口过程.然后是WM_HSCROLL和WM_VSCROLL消息.在调用原窗口过程之前需要去掉窗口的WS_HSCROLL和WS_VSCROLL样式,否则窗口过程就会在消息中绘制滚动条.调用后需要恢复.同时为避免窗口在WM_STYLECH

QT自定义精美换肤界面

陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面,确实不错,也支持多种换肤,遗憾的是我下载过的是VC版本的,对于一直执着于用Qt Creator 来

Android主题换肤 无缝切换

2016年7月6日 更新:主题换肤库子项目地址:ThemeSkinning,让app集成换肤更加容易.欢迎star以及使用,提供改进意见. 更新日志: v1.3.0:增加一键切换切换字体(初版)v1.2.1:完善之前版本View的创建v1.2.0:增加对换肤属性自定义扩展v1.1.0:可以直接加载网络上的皮肤文件 今天再给大家带来一篇干货. Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重启直接实现无缝切换,可高仿网易云音乐的主题换肤. 这个链接是本次的Demo打包出来的

很简单的JQuery网页换肤

现在介绍网页换肤的例子已经数不胜数,自己也没有仔细研究过,刚搞遇到类似这个问题,网上查了资料解决了问题,感觉很有用,就记录了下来和大家分享一下.效果很简单,我就直接讲怎么使用的. 其中用到了jquery.cookie.js 首先是html代码: <div id="header_demo"> <a id="logo" href="#">Rainweb</a> <ul id="skin"&

教程: Android应用如何实现换肤功能

本节课程的目的:学会换肤的方案及实现,掌握不同换肤方案的优缺点及适用场合. 希望各位同学做到:学习某一个技巧就掌握透彻,多练习.最好举一反三.触类旁通,掌握分析问题解决问题的思路和方法. 我讲解的是原理以及实现的关键技术点,细节.优化及与课程主题不相关的或初级的内容可能不会讲解.这是免费培训,精力有限,暂时只能做到让普通的变优秀,让优秀的变卓越.你要是已经卓越了来教教我吧.暂时不做入门培训. 国内有很多的软件都支持皮肤定制,这也是与国外软件重大不同之一,国外用户注重社交.邮件等功能,国内用户则重

200行代码打造超越一线互联网公司的换肤架构

本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: 网易云QQ的换肤是怎么做到的,你对换肤有了解吗?看过换肤的原理没? 心理分析:没有接触过换肤技术 第一次听到该名词肯定会很茫然.面试官考的是对资源加载,监听布局,有没有了解.本文从换肤实战一对一讲解.告诉你如何做以及实现.文章末尾带换肤项目源码 求职者: 从监听布局开始到 换肤原理,详细给面试官讲解换肤的原理 接下来我们一起分享这篇干货. Android的主题换肤 ,可插件化提供皮肤包,无需Activity的重

Chrome 扩展 Stylish :给不喜欢某个网站一键「换肤」

原文地址:http://whosmall.com/?post=419 本文标签: Chrome扩展 Chrome浏览器 Chrome插件 Chrome扩展Stylish Stylish是什么 Stylish 是什么? 开门见山,Stylish 的作用是,它可以把百度首页变成这样: 它还能把知乎「拍扁」,让微博网页版变得简洁无比,让 Feedly 用上Material Design-- 这个神奇的 Stylish实际上是一个浏览器插件,适用于 Chrome,Firefox,Opera 以及 Saf