轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
原文出處:https://dzone.com/articles/why-masses-are-not-using-latest-css-features-in-20
儘管CSS每年都會發布全新的特性,但實際上這些新功能很少會被web開發人員實際在生產專案中使用到,甚至去了解它們的動力也不會比去多完成幾個需求更多。那究竟是什麼原因導致的呢?
1.使用最新特性不是優先事項
在一個新專案的初期階段,它用到的可能只是幾條CSS規則,但隨著專案的持續更新和迭代,專案中使用到的規則就會變得越來越複雜,CSS也會越來越複雜尺寸也會隨之不斷膨脹。因此,作為專案優化的第一要務,作為資源的CSS需要儘可能的精簡和減少複雜度,第一是為了便於更好地理解和維護,第二也是為了載入更為高效。那麼,更實用且可投入生產環境的一些CSS特性會被高頻使用,其他的特性則會被暫時擱置一旁。
並且,在一般情況下,樣式和品牌在一段時間內都會相對固定,完成任務的需求要比使用最新CSS的特性要更緊迫。
(圖片來源於網路)
2.預算限制
預算成本是影響了所有專案的主要因素。它在開發階段會高度影響事項的優先順序。整合新的CSS功能需要時間,而開發團隊來說,增加的這部分時間成本會影響到專案的整體進度。因此,開發進度會重視在優化其他功能(而不是CSS功能)時花費的時間成本。
另外,引入了最新的CSS特性,還可能會使開發團隊把一部分精力放在解決瀏覽器相容性問題上。這點和JavaScript不同,JavaScript有Babel來完成編譯,而CSS沒有提供類似功能。
(圖片來源於網路)
3.社群發展還未跟上
JavaScript每隔一段時間舉行一次會議。同樣,Vue和React也會為了幫助開發人員跟上社群的步伐而定期舉行會議。但是,對於CSS而言,它們根本沒有這樣的活動!因此,開發人員很難掌握其功能和路線圖。他們應該如何保持對新功能發展趨勢的瞭解? 沒有版本釋出說明,也沒有定期的釋出會,這根本不能點燃社群使用者的學習激情。
對普通使用者而言,既然舊的技術已經滿足了需求,那麼又何必那麼麻煩閱讀文件學習新的功能呢?
和框架和其他程式語言不同,CSS沒有針對安全問題的補丁程式。他只是一套標準,反正大多數客戶只需要關心網站看起來UI差不多就行了。
4.很難提升簡歷的含金量
即使你在掌握CSS方面付出了很多的努力,對CSS的新特性也瞭如指掌,但你也很難向你的客戶或老闆證明這一點,因為類似像這樣“熟練掌握CSS3以外的CSS特性”對他人而講是沒有意義的,因為它不是CSS3。在CSS開發領域,CSS3的出現是很有意義的,因為它完成了前端領域的統一:
- Web開發人員提升了技能
- 加速瀏覽器廠商統一支援了全新的CSS標準
- 企業的技術棧更新
巨大的需求帶來了巨大的機會。除了大量的書籍、課程和視訊來幫助人們瞭解CSS3外,還催生了全新的佈局模型,如Flexbox和Grid,儘管它們不是CSS3的一部分。
但這裡我們指的是CSS3外的特性,它們本身除了認可程度很低外,對開發團隊來講也是個相對不熟悉的東西,因此,開發團隊很難會把時間花在對市場沒有意義的事情上,客戶也不會關心你到底用不用新的技術。
5.缺乏時間
編寫CSS的主要目的是使你的網站的表現內容的形式更美觀及易於理解。CSS通過控制兩類事物來幫助開發人員去實現這個目標:佈局和設計。佈局(Layout)負責元素列和行排布,而設計(design)指顏色、字型、間距、動畫和邊框等基礎外觀。
但目前,舊的特性已經能處理的很好了,為什麼要花更多時間去使用新特性去替代已經很好的形式呢?
總結
CSS釋出週期沒有固定的週期和計劃,導致一切都來的很突然 ,另外舊的CSS特性已經能很好的完成日常工作了,這讓很多Web開發人員沒有特別的動力去升級它們。
另外,新的特性知名度也不高,對終端使用者的吸引力也不足,很難從需求層面驅動使用。所以這就是為什麼都2020年了,CSS的新特性仍然使用的人較少的原因。