css换肤
Last updated
Last updated
各位如果为自己的网站动态的换肤是怎么操作的?
今天看到一个挺好的方法,到时可以试试。
这个方法是借助rel
属性的alternate
值实现。
<link href="reset.css" rel="stylesheet" type="text/css">
<link href="default.css" rel="stylesheet" type="text/css" title="默认">
<link href="red.css" rel="alternate stylesheet" type="text/css" title="红色">
<link href="green.css" rel="alternate stylesheet" type="text/css" title="绿色">
上面这四个<link>
元素,略有不同,涉及到阻塞渲染css的问题。
没有title属性,rel属性值仅仅是stylesheet的默认会加载并渲染,如reset.css;
有title属性,rel属性值仅仅是stylesheet的作为默认样式CSS文件加载并渲染,如default.css;
有title属性,rel属性值同时包含alternate stylesheet的作为备选样式CSS文件加载,默认不渲染,如red.css和green.css;
可以看下如何实现一个换肤:
<input id="default" type="radio" name="skin" value="default.css" checked>
<input id="red" type="radio" name="skin" value="red.css">
<input id="green" type="radio" name="skin" value="green.css">
var eleLinks = document.querySelectorAll('link[title]');
var eleRadios = document.querySelectorAll('[type="radio"]');
[].slice.call(eleRadios).forEach(function (radio) {
radio.addEventListener('click',
参考: