2015-10-12 206 views
9

我与我的老板在CSS处理订单上存在矛盾。CSS处理订单

老板坚持CSS文件中选择器的顺序应该与调用网页时使用这些选择器的顺序相匹配。他声称这样的结构是由浏览器强制的,它们依次读取CSS文件内容并按照该顺序应用规则。

我认为这是错误的。

如果我的编程经验与CSS应用程序有任何关联,并且我是.NET程序员,浏览器首先读取CSS文件,并为每个选择器创建一个内存引用(指针类方法内存引用),然后如浏览器读取html文件并呈现页面,每次使用选择器时,浏览器都会使用样式规则引用适当的内存地址,并在DOM中呈现最终结果时应用更改。 CSS文件中的序列是无关紧要的。

我无法支持任何文档的索赔。有谁知道我在哪里可以找到有关这方面的技术文档,并证明我是对还是错? 如何组织CSS文件是否有规则?

+1

CSS规则的特定性决定了它们如何呈现。那,以及令人畏惧的“重要”规则。尽管你的老板肯定是错误的,但是“CSS文件中选择器的顺序应该与这些选择器在调用网页时的顺序相匹配”。 – j08691

+0

https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/How_CSS_works 也许他在CSS规则应用之前,在CSS架构上的所有新东西之前工作在CSS上。 BEM,OOCSS等 – arterzatij

+0

你的老板是不正确的,选择器应该按照特殊性,全局样式,模块样式,页面特定样式,然后黑客(如果你需要它们)加载 - 每个集合稍微更具体一些,然而,如果你对命名规则非常聪明,并且完全理解了特殊性,那么选择器的顺序变得不那么重要,你的老板可能是一流的css开发人员,他们无法很好地表达自己的想法:-) –

回答

8

顺序很重要,但只有在特异性相同的情况下。

例如

.one { color: black; } 
.two { color: red; } 

<div class="one two">...</div> 

...将根据其命令CSS规则集出现在上是不同的。

更多细节见the cascade

+0

非常明确:) –

+1

...和任何好的设计*应该*避免这种情况(有2个相互冲突的类互相争斗,只依靠订单) – vals