CSS即層疊樣式表,所以一層一層覆蓋其實是其本質特征。真正的問題在于維護,許多人認為CSS僅是樣式,不是代碼,無需維護,所以任意書寫,只要將自己需要的樣式的優先級設為最高即可,才導致了深層級CSS的出現,因為每次添加一個樣式就必須比以前的優先級高才能在頁面看到。深層級不僅造成維護性降低,可讀性也是一個問題,人不是機器,無法很優雅的按優先級閱讀,所以很難確認一個樣式用于哪里,其實還存在許多的冗余樣式,在任何地方都被覆蓋的樣式。這樣的代碼在擴展性上,一開始反而是有優勢的,因為添加一個新class,無需擔心影響其他地方,但慢慢隨著項目規模的增大,頁面增多,需要復制樣式的地方也越來越多,它們之間又存在微小的差異,設計的更改,需求的變化,這一切都會將這種快餐式的CSS推進柏油坑。因為難以維護,所以無法響應需求,所以無法復用,只能復制,惡性循環。
正如上面所說的,問題在于可讀性、維護性、擴展性、復用性這幾個方面。所以只要提高它們就能解決問題, 雖然這么說,也不是如此簡單的。先來談談在CSS中,這些概念都有著怎樣的意義。
可讀性
有人認為CSS不是程序,不需要可讀性,有人認為CSS只要寫出來就有可讀性,因為很簡單。拋開各種預處理器不說,原生CSS結構確實簡單,沒有需要編程的部分,但仍然可能導致混亂。原因有二,一是CSS可以層疊,其中涉及到了優先級和作用范圍,如果寫的不好,人很難讀出其中的意義,二是CSS屬性眾多,加上CSS3引入了很多用法獨特的屬性,一個選擇器可能包含幾十個屬性。比如下面這段我隨便寫的CSS代碼:
新聞熱點
疑難解答