2015-10-12 153 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