如何指定CSS类的顺序?
我有点困惑CSS和class
属性。 我一直认为,我在属性值中指定多个类的顺序是有意义的。 后面的类可能/应该覆盖以前的定义,但这似乎不起作用。 这是一个例子:
<html> <head> <style type="text/css"> .extra { color: #00529B; border:1px solid #00529B; /* Blue */ background-color: #BDE5F8; } .basic { border: 1px solid #ABABAB; } </style> </head> <body> <input type="text" value="basic" class="basic"/> <input type="text" value="extra" class="extra"/> <input type="text" value="basic extra" class="basic extra"/> <input type="text" value="extra basic" class="extra basic"/> </body> </html>
我期望,第三个class="basic extra"
例子应该有一个蓝色的边框,因为在额外的指定边框将覆盖从基本的边框。
我在Ubuntu 9.04上使用FF 3
类的属性被覆盖的顺序不是由类属性中的类定义的顺序来指定的,而是在它们出现在css中的位置
.myClass1 {font-size:10pt;color:red} .myClass2 {color:green;}
HTML
<div class="myClass2 myClass1">Text goes here</div>
div中的文本将显示为绿色,而不是红色,因为myClass2在CSS定义中比我的class1更深。 如果我要交换类属性中类名的顺序,则不会改变。
属性中的类的顺序是不相关的。 class
属性中的所有类同样适用于元素。
问题是: 样式规则以什么顺序出现在.css文件中。 在你的例子中, .basic
在.extra
之后,因此.basic
规则将尽可能地优先。
如果你想提供第三种可能性(例如,它是.basic
但是.extra
规则仍然适用),你需要创build另一个类, .basic-extra
或许是明确规定的。