选择器上的类的顺序是否重要?如果是,我可以指定订购吗?

时间:2011-12-09 00:55:03

标签: jquery css

之间是否存在差异:

<span id="test" class="one two"></span>

<span id="test" class="two one"></span>

如果这些类上存在冲突的CSS规则,那么顺序是否重要?

jQuery中是否有任何API可以重新排序?当我打电话给addClass()时,它总是会结束吗?

3 个答案:

答案 0 :(得分:6)

订单无关紧要。

http://jsfiddle.net/rc8Yu/

css precedence

这里的重要部分是

  

如果上述所有规则中的两个规则相同,那么最后一个规则获胜。嵌入在html中的CSS总是在外部样式表之后,而不管html中的顺序

答案 1 :(得分:3)

HTML中的类的顺序并不重要,但CSS 中的顺序确实很重要。例如,如果你有:

span.one { color: red }
span.two { color: blue }

class="one two"class="two one"的两个跨度都会产生蓝色文本,因为“2”类是最后定义的。但如果我们将其改为

span.two { color: blue }
span.one { color: red }

并做了同样的事情,两个跨度现在都有红色文本,因为最后定义了类“one”。还要记住,无论如何,ID都会覆盖这两个类,所以如果我定义了:

span#test { color: green }

并添加id="test",无论文档中的哪个类和ID选择器被定义,跨度都将始终具有绿色文本,因为ID自然比类更具体(其他实例可以创建类比ID更具体等。)


由于这是真的,jQuery分配的类的顺序完全无关紧要。您不必担心重新排序它们,但是,addClass只是将类添加到列表的末尾。

答案 2 :(得分:0)

如果使用classList DOM属性,则订单很重要。

返回的对象将类设置为数字属性;升序作为从左到右的班级名称。

jsFiddle