标准建造网站:用CSS实现页面皮肤适时切换

css|标准|页面

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

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

方法一:什么也不干

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

假设我们有两套CSS,分别封闭在两个不同的文件中:a.css和b.css。然后在<head>和</head>之间加入如下两行XHTML代码:
<link rel="stylesheet" type="text/css" title="主题A" href="a.css" />
<link rel="alternate stylesheet" type="text/css" title="主题B" href="b.css" />
然后用你的Firefox打开这个页面,在菜单栏中选择:查看 -> 页面风格,可以选择这两个主题。

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

方法二:Javascript

在方法一的基础上,可以用Javascript的DOM方法访问link对象,再将不需要的CSS设为“禁用(disabled)”,剩下的CSS就会被浏览器用来渲染页面。脚本如下,请注意其中的注释:
<script type="text/javascript">
function setStyle(title) {
//预定义变量
var i, links;
//用DOM方法获得所有的link元素
links = document.getElementsByTagName("link");
for(i=0; links[i]; i++) {
//判断此link元素的rel属性中是否有style关键字
//即此link元素是否为样式表link
//同时判断此link元素是否含有title属性
if(links[i].getAttribute("rel").indexOf("style") != -1
&& links[i].getAttribute("title")) {
//先不管三七二十一把它设为disabled
links[i].disabled = true;
//再判断它的title中是否有我们指定的关键字
if(links[i].getAttribute("title").indexOf(title) != -1)
//如果有则将其激活
links[i].disabled = false;
}
}
}
</script>
然后在合适的地方调用这个函数,以本页为例,添加如下两个按钮:
<input type="button" value="清光" /><input type="button" value="冥焰" />
使用Javascript的好处是方便、快捷、简单,缺点也是很明显的:很难做到全站的CSS切换,只能局限在当前页上。为了记忆用户的选择,可行的方案就是采用cookie。可是就算使用cookie,也需要在何时载入CSS,用户没有Javasciprt支持怎么办等问题上多做好些文章。所以不如用下面的方法——

方法三:服务器端脚本

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

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

时间: 2024-10-31 11:31:55

标准建造网站:用CSS实现页面皮肤适时切换的相关文章

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

css|网页 用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离.打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS). 当然,换皮之前你需要先按W3C标准建好你的网站,并且为它准备两套表现不一样的CSS."换皮"实质上就是"换CSS",我们要做的,只是用某种方法让浏览器载入另一套CSS,重新渲染页面.方法有很多种,我就介绍最常见的三种. 方法一:什么也不干 啊?什么也不干?

网站设计的标准时代的XHTML+CSS教程

css|xhtml|标准|教程|设计 让我们赶紧跟上新时代的步伐,一起来了解一下网站标准吧. 一.为什么要建立网站标准 我们大部分人都有深刻体验,每当主流浏览器版本的升级,我们刚建立的网站就可能变得过时,我们就需要升级或者重新建造一遍网站.例如1996-1999年典型的"浏览器大战",为了兼容Netscape和IE,网站不得不为这两种浏览器写不同的代码.同样的,每当新的网络技术和交互设备的出现,我们也需要制作一个新版本来支持这种新技术或新设备,例如支持手机上网的WAP技术.类似的问题举

XHTML结构化:使用XHTML按标准重构网站

xhtml|标准 我们曾经为本节撰写的标题是:"XHTML:简单的规则,容易的方针."原因之一是,本节讨论的规则和方针是简单和容易的.原因之二是,一本简单和容易的WEB设计图书,就像超级市场的新式的免费商品一样,虽然常见却可以有效地吸引人的眼球,这样的东西可以刺激人的兴趣,并且鼓励人们尝试. 我确实希望本节的内容可以激发你的兴趣,并鼓励你去尝试.为什么这么说呢?因为一旦你掌握了本章包含的简单容易的理念,你就会重新思考网页运作的方式,并开始改变建造它们的方法.然而我并不希望你只是将代码重

网页标准学习:XHTML+CSS调用样式表

css|xhtml|标准|网页|样式表    web标准设计网站,过渡的方法主要是采用XHTML+CSS,css样式表是必不可少的.这就要求所有网页设计师必须熟练掌握CSS,如果你以前不常用,那么现在就开始学习吧.要制作符合web标准的网站,不懂CSS是设计不出漂亮的页面的.    事实上,所有表现的地方都需要用CSS来实现.我们以前都习惯用table来定位和布局,现在要改用DIV来定位和布局.这是思维方式的变化,一开始有些不习惯.呵呵,任何变革都会有阻力的,为了享受标准带来的"益处"

企业网站建设要点之建设符合SEO标准的网站

上一篇文章<企业网站建设的要点之用户体验>介绍了企业网站建设的要点讲到了网站用户体验方面的事情.文章当中说到了三个方面,清晰的网站设计风格,快速的网站访问速度,丰富的网站内容.而现在要说的是企业网站建设的要点是如何建设符合SEO标准的网站.网站如何SEO标准的话更容易被搜索引擎抓取,并且容易在搜索引擎当中获得较好的排名.我们从以下几个方面来说说如何建设一个符合SEO优化标准的网站. 1.网站的内部建设 站长都知道有些网站设计的语言是不受到搜索引擎的喜欢的.所以我们在建设网站的时候尽量不要使用f

有没有必要将网站Div+Css重构?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 搜索引擎营销工作中,几乎次次都需要把网站重建.这里有很多原因:比如"建设网站的时候没有关键词分析步骤"."有大量的功能模块需要添加"-- 网站重建被大家认为是"脱胎换骨"."咸鱼翻身"的重要一步.的确如此,重建之后的网站完全换了个样子,无论是交给上级.还是

前端代码标准最佳实践:CSS篇

上一篇<前端代码标准最佳实践:javascript>发表后,大家讨论还是很热烈,从侧面体现了前端工程师对写标准的前端代码的重视程度很高.这些最佳标准实践并不是那个权威组织发布的,而是由大量的前端工程师们在实践过程中的经验总结,目的在于提高代码的可读性,可维护性和性能.那么接着上一篇,我们再来谈谈CSS代码的一些标准实践. 1,命名 和其他语言规范一样,css的命名也讲究命名要有意义,命名要尽可能短但是要足够表达含义:命名的词用连字符连接. 不规范的命名: #navigation{ } .dem

web标准的网站开发流程

web标准的网站开发流程 很久以来,网站开发过程中,最大的问题是沟通: 前台与后台,项目经理与项目实施人员, 项目经理和客户,都苦于良好的沟通方式.我觉得问题的根源就在于传统的网站开发方法,说白了,就是非标准的开发方式导致的沟通的困难. 具体地说,一个网站开发小组,通常要配备一下人员: 网站总体策划师,网页设计师(美工),网站制作,程序员.看似分工明确,却往往效率低下,原因在于网站开发本身就没有实现内容.结构.表现.行为的分离,却把人员分工分的如此的明确,这本身就是人力资源运用的败笔:根本没有可

网站制作css书写规范

1. 代码缩进与格式: 建议网站制作单行书写, 可根据自身习惯, 后期优化i会统一处理;     2. 协作开发及分工: i会根据各个模块, 同时根据页面相似程序, 事先写好大体框架文件, 分配给前端人员实现内部结构&表现&行为; 共用css文件base.css由i书写, 协作开发过程中, 每个页面请务必都要引入, 此文件包含reset及头部底部样式, 此文件不可随意修改;     3. class与id的使用: id是唯一的并是父级的, class是可以重复的并是子级的, 所以id仅使用