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

來源:互聯網
上載者:User
簡單地說,就是從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模組的命名:



模組還會有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 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”作為一個概念,只是便於跟之前大而全的版本有所區別。)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.