由于平时对元素样式的控制基本上只是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/
原文地址:http://www.cnblogs.com/zivxiaowei/p/3438809.html
分享到:
相关推荐
HTML rel 属性 - HTML link 标签 - 在 HTML 中嵌入 CSS - HTML教程,XHTML教程.htm
清除删除修改Vue自带的CSS样式,在Vue项目中写样式时发现总是出现一些奇怪的样式和字体颜色,后来发现是Vue自带了默认的CSS样式导致的,只要修改Vue自带的CSS样式即可。文件中附有修改样式的css文件以及详细教程。
④行内元素只能容纳文本或其他行内元素 ⑤链接(a标签)里面不能再放链接 但可以放块级元素 比如图片 (3)行内块元素 img input td ①一行上可以有多个行内块元素 中间有空隙(行内元素特点) ②默认宽度就是他...
这种样式只会对当前标签起作用,不能对样式进行复用,不方便后期维护,不推荐使用 2.内部样式表 将样式表编写到head中的style标签中 <style type="text/css"> 使用内部样式表,进一步将表现和结构分离,...
那邮件内的CSS是如何...link rel=”stylesheet” type=”text/css” media=”all” href=”css/unimarketing.css”/> 【正确引用】写在Html标签内部,代码兼容性,可读性更强 ; “> 活动促销 ; “>活动促销</font>
用于对标签进行标识,方便对标签进行操作。 在定义的中,多个标签的class属性值可以相同,而id值要唯一,因为JavaScript中经常用。 8.class选择器: 在标签中定义class属性并赋值。通过标签名.class值 对该标签...
<html:link> 标签用于生成HTML <a> 元素。1) 允许在URL 中以多种方式包含请求参数。 (2) 当用户浏览器关闭Cookie 时,会自动重写URL,把SessionID 作为请求参数包含在URL 中,用于跟踪用户的Session 状态。
a标签样式 一组专门的预定义的类称为伪类,主要用来处理超链接的状态。超链接文字的状态可以通过伪类选择符+样式规则来控制。伪类选择符包括: 总: a 表示所有状态下的连接 如 .mycls a{color:red} ① a:link:...
# merge_js_css nodejs 解析html根据标签提取需要合并的js、css,并且更新html # 简介 > 站点页面上js、css外链过多会导致网页的加载速度过慢,通过合并页面的js、css成一个文件,减少http的开销。 读取config....
相信有很多做前端的朋友碰到过需要用 JavaScript 动态创建样式表标签——link标签。这里我们就来说说如何在浏览器中动态创建link标签。 使用 jQuery 创建 link 标签 如果你开发中喜欢用jQuery,那么用jQuery在创建...
默认样式: -通常情况下,浏览器会给元素...重置样式表 :专门用来对浏览器的样式进行重置 reset:直接取消了浏览器的默认样式 normalize :对默认样式进行了统一 引用样式表: <link rel="stylesheet" href="">
系统默认提供的CSS样式风格定义 说 明:在《动易网站管理系统》中,CSS样式风格定义是可以自己自由定义的,也说是说您可以自由添加N多个自定义的风格,然后在各频道的版式模板中调用就行了。下面提供的是系统默认...
;单元2-1 层叠样式表种类;;;;;;;;;...第一:样式表的语法;选择器{属性:值;...第二:样式表的作用;...第三:样式表种类: 内联样式<标签名 style=”...< link rel=”stylesheet”type=”text/css”href=”外部样式表文件名” >;
** 使用标签把要操作的数据包起来,通过修改标签的属性值来实现标签内数据样式的变化 *** <font size="5"></font> 2、图像标签 图片的路径"/> ** 通过html访问本地图片,使用绝对路径,目前有问题 3、...
资源名称:CSS属性速查表内容简介:!important 增加特定规则的重要性。 :active 设置当链接处于激活状态时 a 元素的样式。 :first-letter 在对象的第一个字符上应用一个或多个样式。 :first-line 在对象的...
HTML5学习的小伙伴走过路过千万不要错过,这个源码是CSS样式,用LINK标签加载之后就可以用了,由于大多数小伙伴在使用时并不需要看样式。所以我上传的是企业开发版(后缀是.min),如果有需要开发者模式的小伙伴可以...
Web-前端html+css从入门到精通 121. link标签扩展学习.zip
title="Link 1"><span>Link 1</span></a></li><br><li><a href="#" title="Link 2"><span>Link 2</span></a></li><br>... </ul> </div> <br>效果页面,css和html写得很清楚。 下载html打包文件
-任何标签的任何属性都可以修改! -HTML里是怎么写, JS就怎么写 以下是一段js 作用于 css 的 href的 代码 <link id="l1" rel="stylesheet" type="text/css" href="css1.css" rel="external nofollow" /> ...