利用link标签的disabed属性大面积的对其他标签元素的CSS样式进行替换操作
由于平时对元素样式的控制基本上只是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样式进行替换操作的更多相关文章
- python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)
一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...
- 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作
HTML中引入CSS样式的方式有三种: 1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:<link href="css/style.css" rel=" ...
- input标签的hidden属性,四大常用JSTL标签库
input标签的hidden属性的应用及作用 定义:传输关于客户端/服务器交互的状态信息. Transmits state information about client/server intera ...
- css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景
什么是css? 通配符选择器 <head> /* *通配符选择器 匹配任何元素 */ *{ margin: 0; padding: 0; } </head> css样式有三种 ...
- 利用link标签rel="alternate stylesheet"属性实现界面动态换肤
rel="stylesheet"属性指定将一个样式表立即应用到文档.rel="alternate stylesheet"属性将其作为备用样式表而在默认情况下禁用 ...
- <link>标签的rel属性全解析
<link>标签定义了当前文档与 Web 集合中其他文档的关系.link 元素是一个空元素,它仅包含属性.此元素只能存在于 head 部分,不过它可出现任何次数.在 HTML 中,&l ...
- jQuery --- 利用a标签的download属性下载文件!
最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...
- link标签中rel属性的作用
Link标签有两个作用:1. 定义文档与外部资源的关系:2. 是链接样式表.link标签是用于当前文档引用外部文档的 这个标签的rel属性用于设置对象和链接目标间的关系,说白了就是指明你链进来的对象是 ...
- JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和E ...
随机推荐
- 邮件群发工具(C#版)
引言 经常会参与组织一些社区活动,涉及到和不同的人进行交流,微信当然是必须的,同样邮件也是一种不可或缺的方式. 一般群发的邮件不是很友好,如果是一对一的,收到邮件的人是不是会比较重视,而且还有他的名字 ...
- 怎样查看linux版本
玩一台新的linux服务器,首先要做的,就是先看下是什么版本的系统: 命令如下: 登录到linux执行cat /etc/redhat-release ,例如如下: [root@3.5.5Biz-46 ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理
1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以 ...
- 关于Redis中的serverCron
1.serverCron简介 在 Redis 中, 常规操作由 redis.c/serverCron 实现, 它主要执行以下操作 /* This is our timer interrupt, cal ...
- Bootstrap 类解析
Bootstrap 类解析 元素 Bootstrap 类 定义 <div> container 内容容器 <table> table 表格 <table> tabl ...
- 用shell脚本写一个for循环
一.输出十遍北京 for((i=1;i<10;i++))> do> echo '北京';> done 二.死循环 for((;;))do#java -jar producer. ...
- Codeforces Round #254 DZY Loves Colors
题意:输入n, m ; 有n给位置, 初始时第i个位置的color为i, colorfulness为0. 有m次操作,一种是把成段的区域color更新为x, 对于更新的区域,每个位置(令第i ...
- zabbix_server 已死,但是 subsys 被锁
一开始 grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; 将localhost改为ip后恢 ...
- openfire+asmack搭建的安卓即时通讯(四) 15.4.10
之前的教程不知道你们成功了没,,,没成功可以问我啊=-= 第四篇博文是要实现发送消息的功能. 首先在我们登陆后的活动的layout里添加这样的两个控件,一个EditText和一个Button用于发送数 ...
- 2014-2015 Codeforces Trainings Season 2 Episode 7 G Gophers --线段树
题意: 有n个地鼠,m个CD碟,每个CD碟有一个影响范围,范围内的地鼠都会被吵到,每次有一个操作就是移动CD碟,然后求每次被影响的地鼠有多少只. 解法: 线段树做.我们只关注地鼠有没有被吵到就可以了, ...