通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>网页设计>>html/css>>正文 新版上线![旧版]
注:打开慢时请稍等

用css实现皮肤适时切换

http://www.iyit.net  日期:2006-6-3 20:20:10  来源:  点击:
参加讨论】用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支持怎么办等问题上多做好些文章。所以不如用下面的方法——

方法三:服务器端脚本

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

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

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

  创建一个名为switcher.php的文件,内容如下:

<?php$style = $_get["style"];setcookie('style',$style,time()
+31536000,'/','.site.com','0');
header("location:".$_server['http_referer']);?>

本新闻共2页,当前在第1页  1  2  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:css布局入门
下一篇:提高下载速度的网页制作方法
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
css布局入门 10个你未必知道的css技巧 你没见过的css效果
避免表格table被撑开变形的css css应用实例:水平线变成虚线 通过css类型的顺序改变翻滚效果
手写样式表:css语法全攻略(上) 使用 css 创建固定宽度的布局 css让表格的溢出内容隐藏起来
css教程—元素的定位 详细介绍css的三种selector 用asp+css实现随机背景
flash mx 2004 显示外部css和html文件 利用css改善网站可访问性 读取符合rss2.0规范的xml文档
flash中通过xmlsocket监控生产系统(2-5 flash中通过xmlsocket监控生产系统(2-4 flash中通过xmlsocket监控生产系统(2-3
flash中通过xmlsocket监控生产系统(2-2 flash中通过xmlsocket监控生产系统(2-1 flash中通过xmlsocket监控生产系统(1-2
flash中通过xmlsocket监控生产系统(1-1 xml数据库中几个容易混淆的概念2 xml数据库中几个容易混淆的概念1
最新更新 热点排行 推荐新闻
解密.htm.html.shtm.shtml的区别与联系
偷窥html与xml之间的秘密
html网页制作技巧汇编
网页设计中的文字运用
span和div的区别
解密.htm.html.shtm.shtml的区别与联系
偷窥html与xml之间的秘密
html网页制作技巧汇编
网页设计中的文字运用
span和div的区别
提高下载速度的网页制作方法
用css实现皮肤适时切换
css布局入门
网页meta标签的奥妙
robots.txt和robots meta标签
一个优秀的超链接鼠标悬停提示css+js
*.htc 文件的简单介绍
html 初学者指南
跟我学xsl(二)
xhtml第4天:调用样式表
优秀公益广告作品欣赏(8)
qq最新版下载 2006 beta2 体验新感受 
java数据类型转换
windows xp专业版iis连接数的更改
优秀公益广告作品欣赏(7)
office2007简体中文版浮出水面 美图抢
qq密码破解程序
优秀公益广告作品欣赏(6)
优秀公益广告作品欣赏(4)
优秀公益广告作品欣赏(5)
利用css改善网站可访问性
在asp.net中防止注入攻击
用asp.net开发web服务的五则技巧
linux操作系统12则经典应用技巧
浅谈linux优化及安全配置的个人体会
解决局域网不能互相访问之全攻略
win 2000简单的入侵常识
用win 2003架设邮件服务器
硬盘分区消失,解决方法!
传统计算机病毒传播能力破坏性在提高
内存为何有“两面性”
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息