`
20386053
  • 浏览: 461653 次
文章分类
社区版块
存档分类
最新评论

根据用户选择用JS切换生效的CSS文件实现网站网页换肤

 
阅读更多

说明:关于实现这个用途的文章,一般只是直接给了代码,没有对关键知识点的必要解释。本文侧重讲解原理和关键点,为方便网友使用,在后面附加了具体的代码,可实现将选择的风格名称存到cookie里去。

正文:

  想要进行网页的换肤,如果用普通的获取各个显示对象然后更改对象的各项STYLE属性或者只是CLASS属性,缺点是十分明显的:

  1、涉及对大量的网页内对象读写,并可能操作多项STYLE属性,JS代码量多。

  2、STYLE代码分散,缺乏组织,更改维护麻烦。

  那么更好的方法是什么呢? 就是直接对LINK对象进行切换设置。大家知道,通过LINK可以引用外部的CSS文件,使之对当前页面内容生效。一般语法是这样的:

  <link type="text/css" rel="stylesheet" href="http://theforever.myid/theforever.css" />

  假设网页提供了N种风格供切换,就可以用N条这样的语句,把CSS文件引进来。需要注意的是,除当前生效CSS以外的LINK标签应该这样写:

  <link type="text/css" rel="alternate stylesheet" href="http://theforever.myid/theforever.css" />

  alternate的意思是“供替换的”,这样浏览器就不会根据这套暂时不想生效的CSS对页面显示进行实际的设置。

  那么如何来切换当前生效的CSS文件,产生换肤效果呢? 就是利用LINK对象的disabled属性。当disabled属性为真时,该LINK对象失效,当disabled属性为假时,则该LINK对象生效。

  这样一来就知道,有针对地设置相应的LINK对象的disabled属性,就可以实现切换了。

  如何将用户的选择和LINK对象一一对应起来呢? 这个方法就多了:

  1.可以给LINK加不同的ID属性,然后document.getElementsById('用户选择的LINK's ID')就得到了指定的LINK。

  2.可以给LINK加不同的TITLE属性,然后遍历所有document.getElementsByTagName('link'),取每个LINK对象的TITLE进行对比。

  3.可以给LINK加不同的自定义属性,然后同上。

  至于如何取得用户所选择的显示风格(或说皮肤)的名称,这个方式就更多了,也很简单,就不列出某个固定的方式了。

  原本不想引用罗列具体的代码,但为了方便一些懒惰成性的朋友,还是附加了一套现成的代码,可实现将用户选择的界面风格名称存到cookie里去,下次打开网页就会看到上次更改的界面风格:

作者:赵亮(theforever,碧海情天,on csdn.net)

分享到:
评论

相关推荐

    网页换肤效果

    总的来说,网页换肤是通过CSS和JavaScript的结合实现的,它增强了用户与网页的互动,提升了网站的吸引力和用户满意度。设计师和开发者需要关注皮肤的多样性和适应性,同时确保换肤过程对性能的影响降到最低。通过...

    js+css3文字上下滚动切换动画特效

    总的来说,"js+css3文字上下滚动切换动画特效"是一个结合了前端两种核心技术的实践案例,展示了如何通过JavaScript的动态控制与CSS3的动画效果,创造出引人注目的网页交互体验。无论是用于网站标题、通知栏还是其他...

    HTML外部引用CSS文件不生效原因分析及解决办法

    就比如我在css目录下面写了一个css样式文档:style.css。这时里面只有一句话: XML/HTML Code复制内容到剪贴板 body {  background-color: #ddd;  }  然后再我的html文件里面去引入这个外部css: XML/...

    js无刷新换肤脚本

    此外,为了确保用户切换皮肤时的平滑过渡,可以在CSS中加入适当的过渡效果,或者使用JavaScript控制加载过程,例如通过设置`link`元素的`disabled`属性,避免新皮肤立即生效,直到旧皮肤完全淡出。 总结来说,"js无...

    在Ajax程序中实现无刷新换肤功能(asp.net2.0

    提供的文件"css1.css"和"css2.css"是两种不同的皮肤样式,可以通过修改`&lt;link&gt;`标签指向这两个文件之一来实现换肤。"test.htm"可能是测试页面,用来验证换肤功能是否正常工作。"说明.txt"可能包含了实现该功能的...

    javascript 动态换肤

    JavaScript动态换肤是一种常见的网页交互设计,允许用户根据个人喜好更改网站的主题颜色或风格。在提供的文件中,我们可以看到三个关键文件:`b.css`、`a.css`和`Index.html`。这些文件共同协作来实现这个功能。 ...

    使用.CSS文件轻松修改网页页面j显示效果

    本篇文章将深入探讨如何使用CSS文件轻松地改变网页的显示效果,帮助您理解CSS的核心概念和应用。 首先,让我们理解为什么我们需要CSS样式表。在早期的网页设计中,HTML(HyperText Markup Language)负责结构化内容...

    (ZenCart CJloader包含CSS和JS文件类)yellow1912-cjloader-d268660

    如,zencart网站的下载安全的其他插件中,如果有两个都带有 同一个 javascript 文件(例如:jQuery),那么它将会被加载两次, 不过要使得这个功能生效的话,那么开发者必须都使用CJ Loader插件来加载 css和javascript 文件,...

    winform 多语言 xml文件格式语言包,实现实时语言切换,language切换

    这样,应用程序可以根据用户选择的语言加载相应的XML节点,从而显示正确的文本。 为了实现实时语言切换,我们需要在Winform应用中添加一些关键组件和代码。以下是一些关键步骤: 1. **设计界面**:确保所有需要...

    asp.net后台代码动态引用添加JS和css文件

    在ASP.NET开发中,动态引用和添加JS及CSS文件是一项常用且...综上所述,通过`HtmlGenericControl`和适当的方法调用,可以在ASP.NET应用中轻松实现动态引用和添加JS及CSS文件,为用户提供更加个性化和响应式的网页体验。

    CSS简介和语法关于网页

    3. **外部样式表(External Style Sheet)**:外部样式表存储在以`.css`为扩展名的文件中,多个网页可以引用同一个CSS文件,实现样式复用。例如: ```html &lt;link href="styles.css" rel="stylesheet" type="text/...

    vue element 项目默认css文件 style

    总的来说,Vue Element项目中的`styles`文件是项目样式管理的核心部分,它负责存储和管理全局样式,通过在`main.js`中引入,确保这些样式在整个项目中生效。合理地使用和组织`styles`文件,可以提高项目的可维护性和...

    css文件代码css文件代码css文件代码

    2. **层叠原则**:CSS的"Cascading"体现在当多个规则应用于同一元素时,会根据层叠规则决定哪个生效。一般而言,更具体的规则优先,后定义的规则覆盖前定义的规则。 3. **盒模型**:CSS盒模型描述了元素如何占据...

    Css Hover动画文件

    首先,`hover.css`文件很可能是包含了一系列预定义的CSS样式,这些样式在用户将鼠标指针悬停在元素上时会生效。这些动画效果可能包括颜色变换、透明度调整、旋转、缩放、滑动等多种视觉效果,旨在提升用户体验和交互...

    CSS Flexible Box弹性布局模块切换效果

    **CSS Flexible Box(Flexbox)** 是CSS3中引入的一项重大布局改进,旨在解决复杂的网页布局问题,特别是在响应式设计中的应用。它提供了一种更加灵活、统一的方式来控制元素的排列、对齐和分配空间,使得开发者在...

    react-React组件的css选择器

    每个CSS文件都会被转换为一个JavaScript对象,其中类名被自动转换为唯一字符串,确保组件的样式只对其自身生效。 2. **CSS-in-JS** CSS-in-JS是一种将CSS写在JavaScript代码中的风格,比如使用styled-components库...

    HTML5+CSS3实现的响应式垂直时间轴效果源码

    在提供的源码中,`style.css`和`main.css`是两个CSS文件,它们包含了实现时间轴效果的具体样式规则。可能包含对时间轴线的样式定义,如颜色、粗细、以及时间点的样式,包括形状、大小、颜色等。同时,还可能有过渡和...

    Springboot访问templates下的html页面,CSS,JS失效

    浏览器可能会缓存旧的CSS或JS文件,尝试强制刷新(Ctrl+F5)或清除浏览器缓存来测试新更改是否生效。 8. **错误日志**: 查看Spring Boot应用的日志,尤其是关于HTTP请求处理的错误信息,这有助于定位问题所在。 ...

    HTML5+CSS实现猫眼界面

    在"猫眼界面"的实现中,`style.css`文件包含了所有关于布局、颜色、字体和动画的规则。我们可以用CSS选择器如类选择器(`.class`)、ID选择器(`#id`)以及元素选择器(`element`)来定位并修改特定的HTML元素。例如,...

    案例所需要的css+js文件

    本案例中提到的"案例所需要的css+js文件"可能是一个项目或应用的基础结构,包含了实现特定视觉效果和交互所需的样式表和脚本文件。 首先,我们来详细了解一下CSS。CSS是一种样式表语言,它允许开发者通过分离内容和...

Global site tag (gtag.js) - Google Analytics