频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> HTML/CSS/DIV+CSS教程 -> 网页设计中实时切换 CSS 样式的探讨

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

作者:未知  来源:www.jz123.cn  发布时间:2007-9-2 8:59:40  发布人:圈圈

减小字体 增大字体

 用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="清光" onclick="setStyle('清光');" />
<input type="button" value="冥焰" onclick="setStyle('冥焰');" />

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

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 邮件发送还有问题吗?送..
· 鼠绘超级女生何洁(过程..
· 盛大北京业务调整搬往上..
· 《PHPer》电子杂志春节版..
· ADO 光 标 基 础 (2)
· 用ISAPIfilter使INC、AS..
· 网页软件盘
· 几点提高php序运行效率的..
· JScript 方法 - getUTCS..
· Fireworks CS3切片工具的..
· PHP实例:一个非常全面获..
· Google搜索排名的要点
· 鼠绘技术内幕完全接触-..
· 18岁少年成为百万年薪的..
· 用VS2003调试ASP的方法和..
· C#编程的七个小技巧
相关文章
· 网页设计中文本输入框的一些..
· 网页设计中文本排版的技巧和..
· 网页设计中利用JS控制网页音..
· CSS样式表在网页设计中的运..
· CSS网页设计中使用背景图片..
· HTML网页设计中关于字体设计..
· 网站导航在网页设计中应该注..
· 网页设计中针对中文排版CSS..
· 经验分享:网页设计中实用的..
· 网页设计中如何使用嵌..
· 网页设计中留白的艺术
· 网页设计中排版与布局基础2..
· 网页设计中排版与布局基础1..
· 网页设计中文字颜色的搭配技..
· CSS技术在网页设计中的运用..
· 网页设计中HTML常范的五个错..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号