圖解CSS:揭開CSS的面紗
如果您對前端方面有所關注,那麼對CSS一定不會陌生,你也肯定聽說過一些CSS的新特性。在使用CSS新特性之前,你應該對這個新一代樣式表語言的來龍去脈有個基本瞭解。在本章節中,你將知道一個CSS屬性的制定將會經歷哪些過程,為什麼會有瀏覽器的私有字首以及如何更好的處理這些私有字首,在文章最後簡單的介紹了開發人員如何對CSS新特性做一些漸進增強,優雅降級的處理,給你的使用者有一個更好的,更佳的體驗。
Web標準
從維基百科中,我們可以得知。Web標準又被稱為網頁標準,一般是指有關於全球資訊網各個方面的定義和說明的正式標準以及技術規範。近年來,這個術語也時常和一套建立網站的標準化的最佳實踐方法、網頁設計的原理、以及上述方法的衍生物連續在一起。
Web標準不是一種單一的標準規範,而是由一些規範共同組成的標準集合,是由W3C和其它的標準化組織共同制定,用來建立和解釋基於Web的內容。這些規範是專門為了那些在網上釋出的可向後相容的文件所設計,使其能夠被大多數人所訪問。
這些標準和規範往往彼此相依,其中一部分甚至延伸到網際網路,而不僅限於全球資訊網,並直接或間接的影響到網站以及Web服務的發展和管理。同時也考量到網頁或網站的協同工作能力、無障礙性、易用性。
網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。
如果有網站或網頁宣稱遵循網頁標準,通常表示他們的網頁符合HTML(或HTML5,或XHTML)、CSS和JavaScript等標準。對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行為標準主要包括物件模型(如W3C DOM)、ECMAScript等。而我們要講的CSS就是Web標準中的表現標準語言。
CSS是Cascading Style Sheets層疊樣式表的縮寫。W3C建立CSS標準的目的是以CSS取代HTML表格佈局、幀和其他表現的語言。
標準的制定過程
W3C並不直接產生標準。W3C以工作組的方式,把某項技術的相關各方聚集在一起,最終由他們來產生標準。當然,W3C並不只是一個觀察者,他設定了整個平臺的規則,也會監督整個程序。但這些技術規範,基本上並不是由W3C工作組的工作人員編寫完成的。而我們所說的CSS規範通常是由W3C工作組中的CSS工作組的成員來編寫。其人員組成主要由來自W3C會員公司的成員(比如瀏覽器廠商、主流網站、研究機構和常規技術公司等)、特邀專家(被邀請參與標準制定的Web開發者)和W3C工作人員三個部分組成。
很多Web開發者普遍認為W3C手握標準,主宰Web的生殺大權,而瀏覽器廠端們則不敢不遵從。事實上並非如此,哪些東西該進入Web標準,瀏覽器廠商比W3C有更多的發言權,因為瀏覽器實不實現制定下來的標準,還是由他們說了算。
另外很多Web開發者普遍都會認為,Web標準與自己無關,自己也無法參與。事實上制定Web標準並不是閉門造車。CSS工作組一直堅持透明原則,它內部所有的交流都是公開的,並邀請公眾來關注和參與討論:
- 絕大多數的討論都發生在工作組的郵件列表中:www-style。這個郵件列表是公開布檔的,歡迎任何人的參與
- 每週都會召開一次電話會議,時長一小時。該會議並不向非工作組成員開放,但會議會被記錄在 ofollow,noindex" target="_blank">W3C的IRC伺服器 上的
#css
頻道。這些會議也會整理出來釋出到郵件列表中 - 還有每個季度會有一次面對面會議,也會記錄下來。在獲得工作組主席的許可之後,這類會議也通常會對觀察員開放(就是旁聽)
所有這些都是W3C程序的一部分,任何決定都是通過這樣的方式來產生的。此外,那些真正負責把這些決定寫成規範的人員叫作規範編輯。規範編輯可能是W3C的工作人員、瀏覽器開發者、相關專業的特邀專家,也可能是會員公司的職員,他們全職從事此項工作,為了共同利益去推進標準。
CSS的每項規範大致都會經歷下面這幾個過程:
- 編輯草案(ED) :這是一項規範的初始階段,可能非常粗糙。對這個階段沒有什麼要求,也不保證它會被工作組批准。但它也是各個修訂版本的必經階段,每次變更都是先從一個 ED 中產 生的,然後才會釋出出來。
- 首個公開工作草案(FPWD) :一項規範的首個公開發布版本,它應該準備就緒,以接受工作組的公開反饋。
- 工作草案(WD) :在第一個 WD 之後,還會有更多的 WD 出來。 這些 WD 會吸收來自工作組和更廣闊的社群的反饋,一版接著一版小幅改進。瀏覽器的早期實現通常是從這個階段開始的,廠商基本不太可能對更早階段的草案提供實驗性的支援。
- 候選推薦規範(CR) :這可以認為是一個相對穩定的版本。此時比較適合實現和測試。一項規範只有具備一套完整的測試套件和兩個獨立的實現之後,才有可能繼續推進到下一階段。
- 提名推薦規範(PR) :這是 W3C 會員公司對這項規範表達反對意見的最後機會。實際上他們很少在這個階段提出異議,因此每個 PR 推進到下一階段(也是最後一個階段)只是時間問題。
- 正式推薦規範(REC) :一項 W3C 技術規範的最終階段。
用W3C上的一張圖來簡要的向大家展示一下一個CSS屬性誕生的歷程:
採用Web標準的好處
對於