由于平时对元素样式的控制基本上只是3,4个,所以一般用Jquery的时候直接使用$(element).css();这个方法,或者使用$(element).addClass()方法完成样式操作。对于小范围元素的操作来说,这是非常方便的。但是当针对众多元素同时进行操作的时候呢,这2个方法让代码看起来就比较重量级了,代码的可读性也比较小。
过程起初,我先尝试了一种方式,就是在JS代码中动态插入link标签,引入新的样式文,但是很遗憾的是根本就不起作用,因为那个时候浏览器已经把样式渲染到页面元素了,新引入的样式文件根本就不会被浏览器执行渲染。所以我选择了另外一种方式,就是把2个样式文件同时先加载完毕,然后先禁用其中一个文件,等到在需要出现的时候,利用JS代码控制其启用,从而达到整体控制。
HTML代码片段:
<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代码片段:
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/
[UML]UML系列――协作图(通信图)collaboration diagram - wolfy 阅读原文»
系列文章
UML系列——用例图中的各种关系(include、extend)
UML系列——类图class的实现关系Realization
UML系列——时序图(顺序图)sequence diagram
引言
用例图、活动图、时序图之间的关系?
时序图与协作图之间的关系
共同点:二者都是用对象间的交互来描述用例的。
案例:时序图
协作图
共同点:时序图与协作图均显示了对象间的交互。
不同点:时序图强调交互的时间次序。
协作图强调交互的空间结构。
案例剖析
这里还使用上片文章中的赤壁之战的时序图来分析。
思考:孔明向哪些对象发送了消息?又接收了哪些对象发送的消息?(可以根据这个典故,想想)
协作图
时序图按照时间顺序布图,而写作图按照空间结构布图
协作图与时序图在语义上是等价的,二者可以相互转换,而不会丢失信息。(通过上面的例子,你可能已经看出他们之间的转化关系)
协作图的构成
对象、链接、消息
对象
链接
1、链接的概念
链接用来在协作图中关联对象,链接的目的是让消息在不同的系统对象之间传递。
2、链接的符号表示
链接以连接两个对象的单一线条表示。
消息
1、消息的概念
消息是协作图中对象与对象之间通信的方式
2、消息的类型与符号表示
时序图与协作图的转换
时序图和协作图在语义上是等价的,所以时序图和协作图可以彼此转换而不会损失信息。(具体转换方式在下面Rose建模中讲到)
协作图的Rose建模
一、新建协作图
方法1:
方法2:
二、重命名协作图并双击打开
三、添加对象
方法1: a.将事先创建的类从浏览器拖到协作图中
b.双击对象,在弹出的窗口中设置对象的名称
方法2:
a.通过工具栏的对象按纽在协作图中添加一个对象
b.双击对象,在弹出的窗口中设置对象名和类
四、添加链接
用工具栏中的链接按纽进行连接
五、添加消息
方法1:
a.用工具栏上的消息按纽点击链接线
b.双击消息,在弹出的窗口中设置消息的名称
方法2:
a.双击链接线,弹出如下窗口
没有评论:
发表评论