1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 技巧:同一网页实现多种CSS 样式表切换

技巧:同一网页实现多种CSS 样式表切换

时间:2023-01-01 18:46:09

相关推荐

技巧:同一网页实现多种CSS 样式表切换

CSS制作标签卡Tab效果亚马逊网站应该不会陌生吧?对它页面上方标签卡(Tab)方式的导航条(五分钟快速制作CSS导航菜单随着网页标准化观念深入人心,越来越多的网站采用了CSS架构。CSS架构的让CSS使网页图片半透明你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特CSS边框的设定方法在HTML中对于边框的设定,在文字方面好象没有较详细的设定..至于图形方样式与数据分离所带来的不只是符合标准这样的简单,样式既然与数据分离那么样式的切换则变得理所当然的了!但是网上这样的中文教程实在是太少了!所以我收集了一部分中外网站已经实现的技术资料整理出来供网友参考。

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

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

body {background-color:red;}

第二个是背景为绿色的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" mce_href="red.css" type="text/css" media="screen, projection"/>

<link rel="stylesheet" href="green.css" mce_href="green.css" type="text/css" media="screen, projection"/>

<link rel="alternate stylesheet" href="yellow.css" mce_href="yellow.css" type="text/css" media="screen, projection"/>

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

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

function setActiveStyleSheet(title) {

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()" onclick="setActiveStyleSheet("red"); return false;" ></a>

<a href="javascript :void()" onclick="setActiveStyleSheet("green"); return false;" ></a>

<a href="javascript :void()" onclick="setActiveStyleSheet("yellow"); return false;" ></a>

<a href="javascript :void()" onclick="setActiveStyleSheet("none"); return false;" ></a>

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

补遗:带有记忆功能的JS文档

function setActiveStyleSheet(title) {

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 = "";

documents.cookie = name+"="+value+expires+";

path=/";

}

function readCookie(name) {

var nameEQ = name + "=";

var ca = documents.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);

文章来自: 好喜爱学习网() 网址:/wangzhanzhizuo/cssjiaocheng/50290.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。