首頁  >  文章  >  web前端  >  你知道為什麼CSS3以後不會有CSS4嗎?

你知道為什麼CSS3以後不會有CSS4嗎?

无忌哥哥
无忌哥哥原創
2018-07-12 09:42:334335瀏覽

簡單地說,就是從CSS3開始,CSS規格就被拆成眾多模組(module)單獨進行升級,或者將新需求作為一個新模組來立項並進行標準化。因此今後不會再有CSS4、CSS5這種所謂大版本號的變更,有的只是CSS某個模組層級的躍遷。

引入模組化之前

依照CSS工作小組的說法,CSS歷史上並沒有版本的概念,有的只是「層級」(level)的概念。例如,CSS3其實是CSS Level 3,CSS2是CSS Level 2,而CSS Level 1當然就是CSS1。每個等級都以上一個等級為基礎。

大家都知道,CSS1早就作廢了。 CSS2其實基本上也已經作廢了。但是,CSS1、CSS2(以及CSS2.1)在當時都是一個大而全的規範。而且,CSS2在成為最終標準的時候,W3C規範的流程裡還沒有定義CR這個階段。

後來,W3C進一步完善了規範制定流程,要求每個規範都要經過以下五個階段:

1. 工作草案

(WD,Working Draft)

2. 最終工作草稿

(LC/LCWD,Last Call Working Draft)

3. 候選推薦

(CR,Candidate Recommendation)

4. 提議推薦

(PR,Proposed Recommendation)

5. 推薦標準

(REC,Recommendation)

#由於當初CSS2並沒經過CR階段,因此出現了許多問題。 CSS工作小組被無窮無盡的「改bug」搞得不厭其煩。結果,他們決定對CSS2進行一次修訂,這就是CSS2.1(CSS Level 2 Revision 1)。

換句話說,CSS2.1其實只是CSS2的一個修訂版,並沒有實質變化。有些CSS2的內容,CSS工作小組認為不夠成熟,於是從CSS2.1刪除了。這些刪除的內容被視為回退到流程的CR階段-相當於需要「回爐」。 (後來,這些內容基本上都以CSS模組的方式,經過修訂和增補,進入了CSS Level 3。)

CSS2.1及之前的CSS規範把所有內容都寫在一個文檔裡。隨著CSS特性越來越多,越來越複雜,CSS規範的篇幅也越來越長。 CSS2.1的PDF版有430頁。這就給勘誤和進一步升級帶來了極大不便。因為文件不同部分升級的進度不可能強求一致。

於是,CSS工作小組決定從CSS2.1之後開始採取模組化的路線。就是把需要升級的內容獨立成模組拆分出來,新增的需求也以新模組的方式立項。從此以後,CSS就進入了Level 3。

引入模組化之後

CSS採取模組化路線後,就有了三種模組,而且它們的命名方式非常值得注意。

CSS Level 2原始模組:Selector、Color、Values and Units、BackgroundS and Borders等這些都是從原來CSS規格中拆出來的模組。這些模組的命名一開始就會從Level 3開始,例如Selectors Level 3、CSS Backgrounds and Borders Level 3 ,因為它們都是在CSS Level 2的基礎之上開始的。

新模組:Multi-column Layout、Transitions、Flexible Box、Transforms等都是後來新增的模組,以前CSS中不存在類似特性。因此它們的命名會從Level 1開始,例如CSS Transitions Level 1、CSS Flexible Box Module Level 1。

當然,還有CSS2.1從CSS2刪除的內容。如前所述,“被CSS2.1刪除的CSS2中的內容,被視為回退到CR階段”,而其中大部分內容都會以CSS Level 3的面目“轉世”,一旦它們進入CR階段,就會取代之前對應的內容成為新標準。

OK,上述任何模組的規格從WD推進到REC階段,要麼意味著新CSS模組誕生,要麼意味著舊CSS模組重新煥發了生機!

希望下面這張圖能更直觀地說明CSS模組的命名:



你知道為什麼CSS3以後不會有CSS4嗎?

模組還會有Level 4或更高

CSS到Level 3因為採取了「模組化」策略,本身不會再進化到Level 4了。正因為如此,CSS理論上永遠不會出現CSS4。但是,CSS中的某個模組是可以到Level 4甚至更高等級的。例如,CSS Color Module就開始Level 4的升級之旅了(https://www.w3.org/TR/css-color-4/)。

CSS snapshot 2017裡是這麼說的:

There is no CSS Level 4. Independent modules can reach level 4 or beyond, but CSS the language no longer has levels. (“CSS Levels. (“CSS Level 3” as a term is used only to differentiate it from the previous monolithic versions.)

沒有CSS Level 4。獨立的模組可以到Level 4或更高級別,但CSS這門語言不會再有這個級別。 (「CSS Level 3」作為一個概念,只是便於跟之前大而全的版本有所區別。)

以上是你知道為什麼CSS3以後不會有CSS4嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn