实时切换CSS样式

【算法】基于STM32的MPU6050卡尔曼滤波算法(入门级) 1. 简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。详情见:卡尔曼滤波简介 MPU6050的解算主要有三种姿态融合算法:四元数法 、一阶互补算法和卡尔曼滤波算法。我们常用的DMP库使用的是四元数法,本文采用卡尔曼滤波算法,使用RT-Thread国产操作系统,利用env工具进行串口、模拟IIC环境配置,使用10ms的线程进行卡尔曼滤波解算。 2. 阅读详情

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

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

方法一:什么也不干

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

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

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

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

[separator]

方法二:Javascript

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

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

<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']);?> 

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

<a href="switcher.php?style=a">主题A</a>
<a href="switcher.php?style=b">主题B</a>
  

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

<?php if(isset($_COOKIE["style"])){  $style = $_COOKIE["style"]; }else{  $style = "a";//默认采用主题A }?>
<link rel="stylesheet" type="text/css"
 title="当前选择的主题" href="<?php echo $style ?>.css" />

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

出处:蓝色理想
责任编辑:moby

 

<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>

 

<link rel="stylesheet" type="text/css"
 title="主题A" href="a.css" />

<link rel="alternate stylesheet" type="text/css"
 title="主题B" href="b.css" /> 

【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】 MCTP 是由 DMTF(Distributed Management Task Force)定义的协议,用于提供设备和主机间基于不同传输层(如 PCIe、I²C、USB 等)的管理消息通信能力。在 PCIe 环境下,MCTP 消息作为的一种特殊形式传输,并被赋予唯一的 VDM Code 值0000b,以区别于其他 VDM。MCTP 在 PCIe 环境中作为一种基于 Type 1 VDM 的管理通信协议,提供了设备与主机之间的灵活数据传输能力。 阅读详情

相关推荐

13、基因相似性度量的相关性及特征选择研究

本文研究了基因相似性度量和特征选择在生物学中的应用,详细介绍了GO术语相似性度量的多种方法,包括语义度量和路径长度度量,并分析了不同方法在酵母和人类数据集上的表现。研究发现,Avg-sum方法和基于路径长度的度量在多数情况下效果较好。此外,通过晚期辐射毒性预测的案例研究,探讨了特征选择的重要性及可能面临的过拟合和噪声干扰问题,并提出了相应的解决策略。

js777的博客 127

利用link标签rel="alternate&…

标签 rel="stylesheet"属性指定将一个样式表立即应用到文档. rel="alternate stylesheet"属性将其作为备用样式表而在默认情况下禁用它   通过js拿到link标签对象,disabled属性设置,可以实现变化页面导入样式表 disabled = true;表示它不会立即生效 disabled = false;表示立即生效 本人用了jquery插件,使用方法如下

senlin1202的博客 768

【Network Management】AUTOSAR局部网络管理从0到1配置实践

AUTOSAR局部网络管理从0到1配置实践

qq_36056498的博客 2914

使用alternate stylesheet(CSS)一键换肤

使用link的rel支持的一个属性alternate stylesheet实现一键换肤功能 之前写过一个直接利用JS实现换肤的可以参考下JavaScript一键换肤 alternate stylesheet中文意思是:可替代的样式,不过我们用的不是很多,一般只用stylesheet就够用 首先需要一个index.html、style1.css、style2.css、index.js文件 Tips:...

我欲乘风破浪 1761

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

随着公共安全需求的日益增长,危险物品检测技术在社会安防、交通安检等领域发挥着重要作用。本文介绍了一个基于YOLO系列深度学习框架的危险物品检测系统,集成了YOLOv8、YOLOv7、YOLOv6和YOLOv5四种先进的物体检测算法。系统采用PySide6开发了用户友好的图形界面,提供了完整的训练代码、预训练模型和数据集构建方案。实验结果表明,该系统在危险物品检测任务上实现了高精度和高实时性,为实际应用提供了可靠的技术支持。

YOLO 156

uniapp - 解决报错Error in event handler for “service.requestComponentInfo“: “TypeError: cannot read prop

uniapp,报错,Error in event handler for "service.requestComponentInfo": "TypeError: cannot read properties of undefined (reading 'matches')",h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,如何解决这个问题,一直报错,uniapp报错Error,都检查了还是报错,怎么解决这个错误,uniapp出现Error in event han

🏆 前端领域优质创作者 6379

vue css变量实现多主题皮肤切换

在单页应用中,我们通过设置body的css变量来控制整个系统的主题色,body添加一个属性theme-mode,该属性值用来表示当前页面主题皮肤,切换主题时更新theme-mode更新dom以此实现系统的主题皮肤切换。这个时候就通过css变量实现了在用户切换主题时改变系统的主题皮肤,可以发现css可以支持高度定制主题,后续还能将主题配置文件开放出来单独设置配置文件来生成不同的系统皮肤。下面的是element-ui的主题变量,我们在不同的主题文件中设置成我们需要的主题色就能实现了。div中使用了主题颜色。..

qq_41419473的博客 2514

Power domain 划分该如何下手

假如PD1比PD3更always on的话,我们只需要插入普通buffer即可,因为PD3 on,PD1也肯定是ON,PD1 off,PD3肯定时off,PD1能cover PD3的电源情况,因此使用普通buffer也可,但是处于省电角度,我们还是使用AO buffer;在我们做多power domain时,在切分power domain时,需要谨慎,稍有不慎,就会出现congestion以及timing问题,那问题来了,我们在切分power domain时有什么考究么,今天小编就和大家一起讨论讨论。

芯冰乐 207

几种实现主题切换的方式

几种实现主题切换的方式

qq_42880714的博客 3640

高通8397/8797 qcx camera usecase梳理

本文介绍了ISP(图像信号处理器)的两种工作模式:Inline模式和Offline模式。Inline模式下,前端(IFE)直接连接物理层并行处理,最多支持4路流处理,后端(IPE)通过内存访问完成增强处理;Offline模式下,图像数据先写入内存再由SFE_Lite读取发送给IFE_Full处理,实现一个IFE串行处理多路数据。文章还详细解析了camera_config和usecase配置文件的结构与作用,包括硬件资源配置、场景逻辑定义等,并以ID40_UsecaseDMS为例说明离线模式的具体实现流程,包

车载行业 847

Sigrity System Explorer ViaWizard模式进行过孔建模和仿真分析操作指导

点击TVac_lower tdvac_lower,自动跳转到2D时域曲线,查看最小低电平穿过VIL(ac)max电压的延时,结果如下。点击TVac_high tdvac_high,自动跳转到2D时域曲线,查看最小高电平穿过VIH(ac)min电压的延时,结果如下。点击max Vix_Rise,自动跳转到2D时域曲线,查看上升边PN交叉点与参考电压VREF(dc)的偏差,结果如下。Threshold:阈值,软件自带3个模板,default,Tr01,Tr02,本例选择Default。

weixin_54787054的博客 571

前端之CSS——网页的皮肤!!

CSS(层叠样式表)是一种用于描述网页样式和外观的样式表语言。它与HTML结合使用,用于控制网页的布局、颜色、字体、大小和其他视觉方面的属性。CSS的设计目标是将样式与内容分离,使得网页的结构和样式可以独立管理和修改。CSS基本上由一系列规则组成,每个规则由选择器(Selector)和一组声明(Declaration)组成。选择器用于选择HTML中的元素,而声明则定义了与选定元素相关的样式属性和值。

m0_63865649的博客 1507

【Cesium开发实战】解决加载白膜数据位置不合适问题(地底或浮空)

解决白膜位置地底或者浮空问题。

莫言情怼的博客 568

如何实时切换CSS样式

转载自品略图书馆http://www.pinlue.com/article/2018/11/2609/537655787300.html 用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离。打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS)。 当然,换皮之前你需要先按W3C标准建好你的网站,并...

yihuliunian的博客 361

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

(转)实时切换CSS样式

实时切换CSS样式Create your own CSS Switchers  用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离。打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS)。  当然,换皮之前你需要先按W3C标准建好你的网站,并且为它准备两套表现不一样的CSS。“换皮”实质上就是“换CSS”,我

qdzx2008的专栏 1342

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

三种方法实现实时切换CSS样式

两套CSS,分别封闭在两个不同的文件中:blue.css和green.css。1.浏览器的页面风格设置在和之间加入如下两行XHTML代码:          主题A" href="a.css" />          主题B" href="b.css" />然后使用firefox打开这个页面,在菜单栏中选择:查看 -> 页面风格,就可以使用你的主题了。2.Javascrip

johncools的博客 2947

如何实现CSS样式实时切换?

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

网页标准学习文档 831

如何实现CSS样式实时切换

用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离。打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS)。 当然,换皮之前你需要先按W3C标准建好你的网站,并且为它预备两套表现不一样的CS

489

网页学习:实时切换CSS样式

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 605

使用javascript全局改变CSS样式(网页样式)

之前写过两篇文章通过javascript改变CSS样式,如 Javascript 如何访问修改CSS样式(网页样式)。Javascript 访问和修改CSS样式(网页样式) 补充说明 这两篇文章都是改变局部的CSS样式,也就是改变某个元素的CSS样式 实际上我们也可以通过改变链接CSS样式表的href值来 实时切换网页样式,也就是 “改变模板风格”,也就相当于改变QQ空间的模

郁孤台之魂 5329

Javascript改变CSS样式(局部和全局)

改变CSS样式分为局部和全局,下面为大家介绍下使用Javascript具体的实现,感兴趣的朋友可以参考下一、局部改变样式有三种方法:直接改变样式、改变className和改变cssText改变className: document.getElementById('obj').className="…"改变cssText:document.getElementById('obj...

weixin_34413802的博客 667

实现css+javascript多风格切换实例

为什么80%的码农都做不了架构师?>>> ...

weixin_34380781的博客 473

如何快速构建自定义CSS样式切换器:基于dropin-minimal-css的完整指南

想要为你的网站添加一键切换CSS样式的功能吗?🤔 dropin-minimal-css项目为你提供了一个完美的解决方案!这个强大的CSS框架预览器工具让你能够轻松预览和切换200多种最小化CSS框架,无需编写复杂代码即可为你的网站添加样式切换功能。 ## 📋 什么是dropin-minimal-css? dropin-minimal-css是一个轻量级的CSS框架切换器,专门用于预览各种最

gitblog_00540的博客 306
上一篇: ASP.NET 2.0的会员、角色及配置问题的探讨
下一篇: 关于分层
Rex_love_Burger
博客等级 码龄23年 13粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值