2022-05-24 分類: 網站建設
最近,已經有一些關于是否應該像定義的CSS“下一個版本”CSS4的討論。在本文中,我們將討論此問題,為CSS創建新功能版本的利弊,以及確定新功能版本的潛在問題。
CSS4的問題
最近在網站建設微信群中引發了為什么CSS4還沒有成熟的討論,為了理解為什么沒有CSS4,我們需要看一下Web平臺的歷史。CSS的初始版本是一個單一的整體規范。這些規范包含所有可能的CSS屬性和值。這很好用,因為沒有太多CSS要詳細說明。CSS1主要涵蓋用于格式化文本文檔的功能,CSS2和CSS2.1中添加了其他功能和說明,但是CSS仍然是一個相對較小的規范。
CSS3
當CSS工作組開始研究CSS3時,決定將大型規范拆分為模塊。這些模塊每個都覆蓋CSS的一部分。并非所有CSS都會立即放入新模塊中。CSS2.1中仍然定義了許多東西,因為它們沒有更改或添加。因此,如果仍在CSS2中定義所引用的內容,您仍會在現代模塊中找到指向CSS2規范的鏈接。但是,任何新的CSS都是在單獨的模塊中創建的。隨著新CSS的創建,這種模塊化一直持續到今天。例如,構成Box Alignment規范的幾種功能最初在Flexbox規范中開始使用。一旦很明顯它們可以應用于其他布局方法(例如Grid Layout),它們就被移到一個新模塊中,也要為該其他方法定義。
我們不再將新規范稱為CSS3規范,部分原因是它沒有多大意義。對模塊進行版本控制的方式是,CSS2的升級模塊(例如Selectors)成為了3級模塊。全新的CSS(例如CSS網格布局)在CSS2中根本不存在,因此可以從1級模塊開始生活。這些初始模塊中的一些模塊現在處于4級甚至5級。因此,調用所有新的CSS CSS3不再映射到這些級別編號,并且可能會造成混亂。
規范成熟度級別
除了規范級別,每個單獨的級別都經過從初始草案到成為W3C建議書的分階段過程,該過程中的步驟稱為“ 成熟度級別”。您可能會認為W3C建議是一個“網絡標準”,但是我們在工作中每天使用的許多東西都是在尚未達到該成熟度級別的規范中定義的。您可以在CSS WG Current Work頁面上查看規范列表及其狀態。
缺少進步的CSS4
我們許多開發人員看到了關于CSS3的困惑或CSS4明顯缺乏進步的情況。規范的級別或內部的W3C規范成熟度對網站開發人員而言,遠不如瀏覽器中可以實際使用的CSS來得重要。
也許CSS4可以幫助客戶將思維方式推向更安全,更好的網絡。但在推銷會議上,你很難告訴他們CSS4不支持IE10,因為我們需要CSS變量和網格布局。客戶不知道也不在乎。他們只是想支持盡可能多的瀏覽器(非常典型的FOMO思維方式),但他們是決策者。
但是,如果我們能告訴他們CSS4不支持IE10,因為它沒有最新的CSS4技術,并向他們拋出“您確定要讓新創建的網站落后于競爭對手嗎?” 問題,這可能會困擾他們(當然,除了IE10完全過時且容易受到攻擊這一事實之外)。
第一個問題是,“準備就緒” CSS的任何集合都不像選擇一組規范那樣簡單。許多規范是部分實現的,對某些屬性有很大的支持,而對其他屬性則沒有任何支持。許多Web開發人員認為某些功能已經成熟,其規格仍處于“工作草案”狀態,而工作組中仍在爭論和澄清這些功能。
如果我們以多列布局為例。多年來,大多數屬性已廣泛應用于瀏覽器。但是,該column-span屬性最近才在Firefox中實現,并且最近澄清了許多功能,例如column-fill。
我們可以決定完全忽略規范并查看屬性。由于我們在布局方法中有部分實現,因此這也不是一件容易的事。該框對齊屬性是一個很好的例子。這些是為所有布局方法定義的,其中屬性在該布局方法中有意義。但是,當前僅在Grid和Flexbox中可以看到對Box Alignment的支持。因此justify-self,為塊級框,絕對定位的框和網格項定義的穩定嗎?在網格環境中為是,在塊布局環境中為否。
Box Sizing是另一個領域,我們支持CSS Grid Layout中的固有大小值 fit-content()以進行軌道大小調整,但不支持width。然后,除Firefox以外flex-basis的瀏覽器都沒有實現任何固有的大小調整關鍵字。
最后,如果我們返回multicol,人們對multicol所遇到的許多問題都與屬性本身無關,而與跨瀏覽器碎片支持不佳有關。盡管有各種屬性的出色支持,但這使得multicol的表現似乎很差。解開所有這些依賴關系以提供一組功能將是一件非常困難的工作。
CSS不僅適用于WEB瀏覽器
有大量的用戶使用CSS和HTML并通過創建可打印的PDF來輸出打印的文檔。他們通常對分頁媒體規范,分段等有出色的支持。但是,在實現更新的CSS(例如網格布局)方面,它們通常落后于瀏覽器。它們如何適合CSS4?
人們期望功能發布包括當前不存在的功能
關于此問題的討論中發生的有趣的事情是,許多人發表評論說,他們對CSS4的期望是它將包含某些根本不屬于CSS的功能。盡管其中一些功能(例如Grid和Flexbox)已經在瀏覽器中使用了很多年,但一切似乎都對他們來說是全新的。
但是,任何堅持不懈的人都可能會對為什么有一個“新的”規范充滿真正的舊事物感到困惑。
我們要解決什么問題?
在針對此問題的許多回應中,網站開發人員將瀏覽器支持視為應包含在CSS4中的關鍵,我認為我們所面臨的問題不是CSS版本控制中的一個,而更多的網站開發人員對于通常應該在其項目中使用哪些功能集合。
CSS4方法的優點之一是它發出兩件事。首先,在CSS3之后已經開發了很多新的CSS功能,這些功能已經可以使用,其次,它們已經可以使用了。沒有經過Chrome的實驗或實施,但沒有其他人,但已經為廣泛采用做好了準備。
在此討論中,如此頻繁地出現瀏覽器支持這一事實使我們想知道,定義MDN之類的地方是否是更好的定義。所有瀏覽器供應商都已經為MDN做出了貢獻,它已經為這些功能提供了支持數據,從而使我們能夠看到諸如Box Alignment之類的部分實現。MDN是Web平臺的文檔,因此我們可以回避打印實現或CSS的任何其他實現的問題,僅將功能集限制在Web范圍內。
我們仍然不相信CSS4或我們選擇稱為CSS版本的任何東西實際上會在相對較小的社區之外對CSS的感知產生任何影響。我們認為這也無助于解決網站開發人員說服其老板和客戶升級瀏覽器的問題。如果提供軟件的微軟告訴用戶進行升級而用戶不進行升級,那么我們將看不到支持CSS4的根基。而且,我們做了很長一段時間,人們仍然沒有升級他們的瀏覽器。所以CSS4真正的使用只能依存于瀏覽器的全面支持。
網站題目:為什么CSS4還沒被應用于網站建設?
鏈接地址:http://m.newbst.com/news42/157792.html
網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站建設等
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容