`

同一网页实现多种CSS 样式表切换[转]

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

首先要具备不同内容的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" title="red" media="screen, projection"/>
<link rel="stylesheet" href="green.css" mce_href="green.css" type="text/css" title="green" media="screen, projection"/>
<link rel="alternate stylesheet" href="yellow.css" mce_href="yellow.css" type="text/css" title="yellow" 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;" title="红色样式"></a>
<a href="javascript :void()" onclick="setActiveStyleSheet('green'); return false;" title="绿色样式"></a>
<a href="javascript :void()" onclick="setActiveStyleSheet('yellow'); return false;" title="黄色样式"></a>
<a href="javascript :void()" onclick="setActiveStyleSheet('none'); return false;" title="没有样式"></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 = "";
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);
 

文章来源:http://blog.sina.com.cn/s/blog_4b62146d01000a05.html

分享到:
评论

相关推荐

    第五章 CSS样式表美化网页.

    在本章中,我们将深入探讨如何使用CSS(Cascading Style Sheets)样式表来美化网页。CSS是网页设计的关键技术之一,它允许我们控制网页的布局、颜色、字体、间距等视觉元素,使得网页看起来更加专业和吸引人。通过...

    css样式表手册

    《CSS样式表手册》是一本全面且实用的CSS(Cascading Style Sheets)参考资料,旨在帮助开发者快速查询和理解CSS的各种属性、选择器以及布局技巧。CSS作为一种样式语言,是网页设计的核心技术之一,用于控制网页元素...

    CSS样式表编辑工具 TopStyle V3.12

    《TopStyle V3.12:专业CSS样式表编辑利器》 TopStyle V3.12是一款专为网页设计师打造的CSS(Cascading Style Sheets)样式表编辑工具,它以其强大的功能和用户友好的界面在众多编辑器中脱颖而出。这款软件能够帮助...

    HTML5+CSS3实现的图片左右切换弹性动画特效源码

    `css`文件夹则包含样式表文件,其中包含了实现弹性动画效果的所有CSS3规则。 在实际应用中,为了实现响应式设计,可能会使用CSS3的媒体查询(`media queries`)来确保在不同设备和屏幕尺寸上的显示效果。同时,为了...

    CSS层叠样式表手册

    **CSS层叠样式表(Cascading Style ...以上内容只是CSS层叠样式表手册中的冰山一角,深入学习和掌握CSS将帮助你构建更专业、更美观且高性能的网页。通过持续实践和学习新的CSS技术,你可以成为一个出色的前端开发者。

    asp不同页面跳转(建立css样式)

    通过上述分析,我们可以看出,在ASP中实现不同页面间的跳转并结合CSS样式表的应用,可以极大地提升Web应用的灵活性和用户体验。利用`Response.Redirect`方法进行页面跳转,并通过URL参数传递信息,再结合`Page.Theme...

    网页设计师css

    - **Bootstrap**:流行的前端开发框架,包含CSS样式、JavaScript组件和响应式布局。 - **Tailwind CSS**:实用主义CSS框架,提供原子级样式,按需组合构建界面。 通过深入学习和实践这些CSS知识点,网页设计师...

    CSS3实现3D图片翻转洗牌特效.zip

    CSS3是层叠样式表(Cascading Style Sheets)的最新版本,它引入了许多增强功能,包括3D变换、过渡和动画,使网页设计变得更加生动。 首先,我们需要了解CSS3中的3D变换。3D变换允许元素在三维空间中进行操作,如...

    rapidcss样式表工具

    RapidCSS是一款强大的网页样式表编辑工具,专为帮助开发者快速、高效地编写和管理CSS(Cascading Style Sheets)而设计。它集成了许多实用功能,使得Web编程技术的学习和应用变得更加简单。这款工具的出现,大大提升...

    Javascript,Html,Css,Frame框架整合的菜单样式

    在网页设计中,JavaScript、HTML、CSS以及Frame和Frameset框架的...在实际项目中,GcxyBack可能包含了实现这种菜单样式的源代码文件,包括HTML文件、CSS样式表和JavaScript脚本,通过它们我们可以学习到具体实现细节。

    html5 css3仿谷歌卡片翻转动画特效

    CSS3(层叠样式表第三版)则是CSS的最新版本,提供了更多的样式控制和模块化设计,包括对动画和过渡的支持,让网页设计更加丰富多彩。 【谷歌卡片式设计】 谷歌卡片式设计是一种简洁、直观的界面设计模式,常见于...

    CSS教程.doc CSS教程.doc

    CSS,全称Cascading Style Sheets,中文称为层叠样式表,是一种用于定义网页元素外观和布局的样式表语言。它与HTML(超文本标记语言)配合使用,让网页设计更加灵活、精确,使得网页的样式控制不再局限于HTML的基本...

    jQuery+CSS3实现3d旋转轮播图效果特效.zip

    而CSS3是层叠样式表的最新版本,引入了许多新的功能和样式,包括3D变换,这是实现酷炫视觉效果的关键。 首先,让我们详细了解一下如何使用jQuery和CSS3来构建3D旋转轮播图。 1. **jQuery轮播图基础**: - 使用...

    html_css_js

    JavaScript是一种脚本语言,用于实现网页的动态效果和交互功能。它能操纵HTML和CSS,响应用户行为,甚至执行复杂的异步操作。 **DOM操作**:Document Object Model,即文档对象模型,JavaScript可通过DOM访问并修改...

    jquery+css3实现图片动态背景.zip

    接下来,"css"目录下的文件是CSS样式表,它们负责定义网页的布局和视觉风格。CSS3引入了许多新的特性,如动画(Animations)和过渡(Transitions),这些在实现动态背景时起着关键作用。例如,可以设置背景图片的...

    编写CSS帮助文件chm

    通过媒体查询(media queries),开发者可以根据设备的特性(如屏幕尺寸、分辨率等)来调整CSS样式,实现跨设备兼容。 六、CSS预处理器和后处理器 CSS预处理器(如Sass、Less)和后处理器(如PostCSS)扩展了CSS的...

    CSS帮助文档

    **CSS(层叠样式表)**是网页设计中不可或缺的一部分,它用于定义页面的布局、颜色、字体等视觉样式。这个“CSS帮助文档”显然是一份详细的资源,旨在协助开发者和设计师更好地理解和应用CSS技术。 在CSS的世界里,...

    jquery+css图片走马灯

    CSS(层叠样式表)是用于控制网页元素外观的样式语言。在走马灯中,CSS 负责布局、定位图片,以及添加过渡和动画效果,以实现视觉上的流畅切换。 **图片走马灯的基本结构** 一个简单的图片走马灯通常包含以下部分:...

    126邮箱TAB效果(同一页面可多次使用).rar

    如果这个"40"是指40个文件,那么这些文件可能是分隔的HTML模板、CSS样式表和JS脚本,或者是不同版本、不同主题的TAB效果示例。 在实际应用中,开发人员可以根据项目需求,将这些文件整合到自己的网页项目中,通过...

    自定义qss样式表_qss_qss皮肤_QT_

    QSS允许开发者轻松地切换主题,只需加载不同的样式表文件即可。例如,你可以有一个明亮的主题和一个暗黑的主题,用户可以根据个人喜好进行选择。 海军蓝样式表可能会包含像这样的一条规则: ```qss QPushButton { ...

Global site tag (gtag.js) - Google Analytics