W3C标准:实时切换CSS样式

用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离。打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS)。


当然,换皮之前你需要先按W3C标准建好你的网站,并且为它准备两套表现不一样的CSS。“换皮”实质上就是“换CSS”,我们要做的,只是用某种方法让浏览器载入另一套CSS,重新渲染页面方法有很多种,我就介绍最常见的三种。

方法一:什么也不干

啊?什么也不干?嗯,这个……准确地说是:就干那么一丁点儿 (你还真以为有这么好的事儿呀……)。

假设我们有两套CSS,分别封闭在两个不同的文件中:a.css和b.css。然后在和之间加入如下两行XHTML代码

然后用你的Firefox打开这个页面,在菜单栏中选择:查看 -> 页面风格,应该可以看到如下的“风景”:

就这么简单,现在你就可以用Firefox来“换皮”了。IE?IE没这个功能……MS就是这么拽,W3C“明文推荐”:要求浏览器提供给用户自己选择样式表的权力,可它就不这么干。幸运的是这件事也不是太难杂,咱就代劳一下吧。

[separator]

方法二:Javascript

方法一的基础上,可以用Javascript的DOM方法访问link对象,再将不需要的CSS设为“禁用(disabled)”,剩下的CSS就会被浏览器用来渲染页面。脚本如下,请注意其中的注释:

然后在合适的地方调用这个函数,以本页为例,添加如下两个按钮:

  

使 用Javascript的好处是方便、快捷、简单,缺点也是很明显的:很难做到全站的CSS切换,只能局限在当前页上。为了记忆用户的选择,可行的方案就 是采用cookie。可是就算使用cookie,也需要在何时载入CSS,用户没有Javasciprt支持怎么办等问题上多做好些文章。所以不如用下面 的方法——

方法三:服务器端脚本

毫无疑问,最好的CSS切换器应该使用服务器端脚本(PHP、ASP、JSP等)来开发。这样做的好处是很明显的:直接、高效、兼容性好、可以记忆用户选择、甚至可以组合不同的CSS实现相当复杂的“皮肤”切换。

我这里就用PHP为例,用其他的语言也都大同小异,对一般的开发人员来说不会有任何困难。

基本思路是这样:用户选择一种“皮肤”,把用户的选择记入cookie(记入数据库也一样,不过这样系统开销会大一些),用户访问网站上的任何一个页面时,再从cookie(或数据库)中读出之前用户的选择,载入相应的CSS文件(这里还是以方法一中讲到的a.css和b.css为例)。

创建一个名为switcher.PHP文件内容如下:

 

这段脚本先读取query数据,然后把参数style的值记入cookie,最后返回上一页。接下来我们就可以创建两个用于切换样式的链接了,并且放在合适的页面上,比如首页用户管理后台(注意把其中的site.com换成你的域名):

  

点击任意一个链接,相应的就会把“a”或“b”记入cookie,然后就需要一段脚本来读取这个cookie值并且输出XHTML来引入对应的CSS:

title="当前选择的主题" href=".css" />

一个需要切换样式的页面都要加上这段代码,所以直接把它加入网站的头文件中就行了。当然你可以根据自己的需要修改这个脚本,但万变不离其宗,总的思路应该是不变的。

title="主题A" href="a.css" />

title="主题B" href="b.css" />?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


CSS雪碧图是一种将多个小图合并成一张大图的优化技术,能够减少请求次数,提升页面性能。但是,我们在使用雪碧图时,可能还需要为其中的某一个小图添加超链接。这该怎么实现呢?下面我们来介绍一下。
今天我来介绍一下如何使用CSS来实现图片上下移动位置的效果。 首先,我们需要在HTML中添加一个图片元素,并给它一个唯一的ID。比如:
CSS中,我们可以利用transition属性来为元素添加动画效果。与这个属性相关的其他属性包括transition-delay、transition-duration、transition-property和transition-timing-function。在这篇文章中,我们将聚焦于t
CSS中如何让li居中对齐 在Web开发中,经常需要用到无序列表(ul)来呈现一些内容,但是默认情况下,这些li元素是左对齐的。那么,如何让li元素居中对齐呢?下面是一些实用的CSS技巧。
CSS是一种用来控制网页样式的语言,它可以用来控制页面元素的位置、大小和颜色等,其中有一种很重要的功能就是对齐方式的控制。下面我们来看看具体如何使用CSS来对齐页面元素。
CSS中的图片等比例缩放是网页设计中常用的技巧之一,因为这样可以让图片在不改变其宽高比的情况下适应不同的屏幕尺寸。以下是实现图片等比例缩放的方法:
CSS是一门非常重要的网页设计语言,可以控制网页的布局、颜色、字体等各种属性。有时候我们可能需要在网页中不加颜色的字体,这时候就需要用到一些技巧来达到这个目的。
CSS3是一项新的技术,可以为我们的网站添加许多惊艳的动画和效果。其中一种常用的效果是3D旋转效果图,它可以使图片和文字在页面中呈现出立体效果。
在CSS中,我们可以通过一些技巧来实现图片一帧帧播放的效果。最关键的是利用CSS的animation属性,通过关键帧动画来实现。
CSS是一个用于控制网页外观的语言。CSS不仅可以设置元素的样式,还可以将多个元素组合起来并共享样式。其中,最常用的组合方式就是同时使用两个或更多类。
CSS是网页设计中非常重要的一部分,它可以为网页元素设置各种样式,其中我们经常需要为边框设置样式。下面我们来看一下如何使用CSS为边框设定样式。
CSS渐变是Web设计中经常使用的一种技术,它可以让网页元素颜色从一个颜色到另一个颜色平滑过度。从右到左的渐变效果也十分常见,接下来我们就来介绍一下如何实现这样的效果。
CSS提供了许多方式来美化我们的网页,其中一种就是在图片上加入蒙层。这种效果可以让图片更有层次感,更具有视觉冲击力。下面我们来看一下如何使用CSS在图片上添加蒙层。
CSS是网页设计中重要的一部分,它可以让网页更加美观和具有吸引力。其中,图片上加蒙板是一种常见的设计方式。
CSS图片上下翻转动画是一种常见的网页动画效果,可以提高网页的视觉吸引力。下面介绍一种简单的CSS实现方式。
CSS(层叠样式表)是网页设计中必不可少的一部分,它通过控制HTML元素的样式来美化网页排版。而与CSS相关的最重要的任务之一就是与浏览器建立关系,以确保网页能够顺利地在不同的浏览器上正常显示。
在进行网页设计时,经常会涉及到在图片上放置图片的需求。在这种情况下,就需要使用CSS技术来实现。然而,在实际操作中,有时候会发现放置的图片并不能正常显示,这就需要我们仔细检查代码,找出问题所在。
在网页设计中,css是一种十分重要的样式语言。其中,设置段落间距也是css中常见的一种样式操作。一般来说,我们可以通过margin和padding属性来实现这一功能。
CSS 图片三角形是一种非常有用的技巧,它可以通过纯CSS代码实现。这是Web设计和开发必不可少的技能之一,因为它可以使页面更加具有吸引力和美观。
在网页设计中,常常会用到在图片上添加另一张图片的效果。然而,有时候我们会遇到这样的问题:我们的浏览器看到了HTML代码中的标签,但是图片却没有显示出来。这种情况的解决方法就是注意CSS代码的书写。