网页中CSS样式切换的实现

鍗曠函鈽炲彈鎸

鍗曠函鈽炲彈鎸

2016-02-19 19:41

下面图老师小编要向大家介绍下网页中CSS样式切换的实现,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

  样式与数据分离所带来的不只是符合标准这样的简单,样式既然与数据分离那么样式的切换则变得理所当然的了!但是网上这样的中文教程实在是太少了!收集了一部分中外网站已经实现的技术资料整理出来供网友参考。

  首先要具备不同内容的CSS文件(最好每个文件代表一种样式,或是代表需要作出变动的部分)。这里以三个为例:

  第一个是背景为红色的CSS文件(red.css)CSS中的内容为:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  body {background-color:red;}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  第二个是背景为绿色的CSS文件(green.css)CSS中的内容为:

  body {background-color:green;} 

  第三个是背景为黄色的CSS文件(yellow.css)CSS中的内容为:

  body {background-color:yellow;} 

  然后在xthml文件中加入这三个CSS的链接

link rel="alternate stylesheet" href="red.css" type="text/css" title="red" media="screen, projection"/
link rel="stylesheet" href="green.css" type="text/css" title="green" media="screen, projection"/
link rel="alternate stylesheet" href="yellow.css" type="text/css" title="yellow" media="screen, projection"/

  这三个中除了title不一样外还有一个地方有所不同,那就是REL。第一个与第三个都是alternate stylesheet只有第二个是stylesheet。这第二个就是当然样式。

  在链接下面再导入一个JS文件,用来控制这个样式切换

 {
 var i, a, main;
 if (title) {
 for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
 if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) {
 a.disabled = true;
 if(a.getAttribute('title') == title) a.disabled = false;
 }
 }
 }
 }
 function getActiveStyleSheet() {
 var i, a;
 for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
 if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled) return a.getAttribute('title');
 }
 return null;
}

   在合适的地方加入三个切换按钮

a href="javascript :void()" title="红色样式"/a
a href="javascript :void()" title="绿色样式"/a
a href="javascript :void()" title="黄色样式"/a
a href="javascript :void()" title="没有样式"/a

  好了发布试试点那三个切换链接!是不是已经切换了样式?

  附录:带有记忆功能的JS文档

{
var i, a, main;
for(i=0; (a = document.getElementsByTagName
("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") 
!= -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) 
a.disabled = false;
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName
("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style")
!= -1 && a.getAttribute("title") && !a.disabled)
return a.getAttribute("title");
}
return null;
}
function getPreferredStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName
("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+";
path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return
c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("style");
var title = cookie ? cookie :
getPreferredStyleSheet();
setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie :
getPreferredStyleSheet();
setActiveStyleSheet(title);

展开更多 50%)
分享

猜你喜欢

网页中CSS样式切换的实现

Web开发
网页中CSS样式切换的实现

实时切换网页的CSS样式实现

Html CSS布局 Div+CSS XHTML
实时切换网页的CSS样式实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

网页设计中实时切换 CSS样式的探讨

Web开发
网页设计中实时切换 CSS样式的探讨

网页风格化 用CSS实现皮肤适时切换

Web开发
网页风格化 用CSS实现皮肤适时切换

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

HTML网页中无刷新的更换CSS样式

Web开发
HTML网页中无刷新的更换CSS样式

CSS样式表在网页设计中的运用

Web开发
CSS样式表在网页设计中的运用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

CSS文字换行详细解说

CSS文字换行详细解说

如何激活Mac OS X的缩放功能

如何激活Mac OS X的缩放功能
下拉加载更多内容 ↓