由于平时对元素样式的控制基本上只是3,4个,所以一般用Jquery的时候直接使用$(element).css();这个方法,或者使用$(element).addClass()方法完成样式操作。对于小范围元素的操作来说,这是非常方便的。但是当针对众多元素同时进行操作的时候呢,这2个方法让代码看起来就比较重量级了,代码的可读性也比较小。

  过程起初,我先尝试了一种方式,就是在JS代码中动态插入link标签,引入新的样式文,但是很遗憾的是根本就不起作用,因为那个时候浏览器已经把样式渲染到页面元素了,新引入的样式文件根本就不会被浏览器执行渲染。所以我选择了另外一种方式,就是把2个样式文件同时先加载完毕,然后先禁用其中一个文件,等到在需要出现的时候,利用JS代码控制其启用,从而达到整体控制。

HTML代码片段:

<link href="/public/stylesheets/page/application/first.css" rel="stylesheet" type="text/css">
<link id="second_css" disabled="true" href="/public/stylesheets/page/application/second.css" rel="stylesheet" type="text/css">

  代码中我用了2个link标签,注意看到第二个link标签中我添加了ID属性和disabled这2个属性。ID当时是用于JS便于操控,disabled用于在需要的时候取消禁用,需要的时候启动禁用,从而覆盖原有样式。由于在实际开发中,我的第一个样式文件中包含了其他许多不需要被大面积操作元素的样式,所以在操作的时候我并没有采用这种思路:

采用first.css文件 —>禁用second.css文件

或者

采用second.css文件—>禁用first.css文件

而是

  我在second.css文件中,把样式属性值都添加了!important 属性值,从而增加其显示的优先级,达到覆盖first.css文件中的样式。也就是单独的只对second.css的样式文件进行操作,当然你也可以纯粹的对2个文件进行直接操作,不需要在第二个样式文件中添加!important达到覆盖,

second.css代码片段:

.top {
position: fixed !important;
background: #FFF !important;
} .logo {
background:url(/public/images/page/index/mini_logo.png) !important;
}

下面看看JS代码片段:

//禁用样式文件
$(element).attr("disabled","true");
//启用样式文件
$(element).attr("disabled","false");

以上方法我在IE8和chrome测试通过。下图是一张disabled属性在浏览器中的支持情况:

conditions IE(10) Firefox Chrome Safari
load CSS_1 Y Y N Y
CSS_2 Y Y Y Y
Disabled
(Attribute)
CSS_1 true true true true
CSS_2 null null null null
Disabled
(Property)
CSS_1 true false true false
CSS_2 false false false false

结语:以上是我操作样式的一种思路,当然还有其他方法,欢迎大家交流。更多关于disabled的知识可以查看一下链接:

http://www.ibm.com/developerworks/cn/web/1309_hanjz_htmldisable/

利用link标签的disabed属性大面积的对其他标签元素的CSS样式进行替换操作的更多相关文章

  1. python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)

    一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...

  2. 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作

    HTML中引入CSS样式的方式有三种: 1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:<link href="css/style.css" rel=" ...

  3. input标签的hidden属性,四大常用JSTL标签库

    input标签的hidden属性的应用及作用 定义:传输关于客户端/服务器交互的状态信息. Transmits state information about client/server intera ...

  4. css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景

    什么是css? 通配符选择器 <head> /* *通配符选择器 匹配任何元素 */ *{ margin: 0; padding: 0; } </head> css样式有三种 ...

  5. 利用link标签rel="alternate stylesheet"属性实现界面动态换肤

    rel="stylesheet"属性指定将一个样式表立即应用到文档.rel="alternate stylesheet"属性将其作为备用样式表而在默认情况下禁用 ...

  6. <link>标签的rel属性全解析

      <link>标签定义了当前文档与 Web 集合中其他文档的关系.link 元素是一个空元素,它仅包含属性.此元素只能存在于 head 部分,不过它可出现任何次数.在 HTML 中,&l ...

  7. jQuery --- 利用a标签的download属性下载文件!

    最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...

  8. link标签中rel属性的作用

    Link标签有两个作用:1. 定义文档与外部资源的关系:2. 是链接样式表.link标签是用于当前文档引用外部文档的 这个标签的rel属性用于设置对象和链接目标间的关系,说白了就是指明你链进来的对象是 ...

  9. JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

    JSTL  JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发者一个标准通用的标签函数库   和E ...

随机推荐

  1. (ios实战)单个ViewControl适配不同ios版本xib文件实现

    xcode5 中的界面布局 根据sdk 分成ios7.0 and Later 和 ios6.1 and Earlier 两种,那如何xib同时支持 ios6 和ios7 的界面呢 方法如下: 在xco ...

  2. JavaScript Patterns 2.12 Writing API Docs

    Free and open source tools for doc generation: the JSDoc Toolkit (http://code.google.com/p/jsdoc-too ...

  3. Spring AOP 深入剖析

    AOP是Spring提供的关键特性之一.AOP即面向切面编程,是OOP编程的有效补充.使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统.从而避免了在业务逻 ...

  4. SeekableByteChannel 和 FileChannel

    Java7中引入了SeekableByteChannel接口,允许我们定位到文件的任意位置进行读写.注意这里的写,不是新增式的插入,而是覆盖,当然在文件末尾的写,是新增. java.nio.chann ...

  5. 【mysql】索引的优化

    写在前面的话 查询容易,优化不易,且写且珍惜 mysql结构 从MySQL逻辑架构来看,MySQL有三层架构,第一层连接,第二层查询解析.分析.优化.视图.缓存,第三层,存储引擎 MySQL有哪些索引 ...

  6. JSP 标准标签库(JSTL)之最常用的JSTL标签总结

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-t ...

  7. 10分钟制作UWP汉堡菜单

    什么是汉堡菜单? 汉堡菜单,指的是一个可以弹出和收回的侧边栏.在UWP和Android应用中,汉堡菜单都非常常见. 首先我们列出所有需要掌握的前置知识: 1,SplitView 2,StackPane ...

  8. 面试之jsp、Servlet相关知识——生命周期, 区别等

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  9. db2 常用命令(一)

    DB2数据库常用命令小结   ========操作数据库命令==========   -- 启动数据库实例 #db2start    -- 停止数据库实例    #db2sto         # 如 ...

  10. Golang tips ----- 函数

    1.在函数调用时,Golang没有默认参数值 2.一个函数声明如果没有函数体,表面该函数不是由Golang实现的,这样的声明定义了函数标识符 3.拥有函数名的函数只能在包级语法块中被声明 4.函数值( ...