背景
現代 CSS 的發展已大幅取代過去依賴 JavaScript 或 Sass 預處理器的繁瑣手段。Modern.css 網站列舉了數十種原生解決方案,旨在呼籲開發者停止使用 2015 年代的陳舊技巧,轉而擁抱如容器查詢、滾動驅動動畫及原生嵌套等現代特性,以簡化代碼並提升效能。
社群觀點
Hacker News 的討論呈現出技術演進與現實相容性之間的拉鋸。部分開發者對這類現代化清單抱持懷疑,指出網站中某些特性(如 sibling-index)的瀏覽器支援度標示有誤,並警惕過度精美的網頁設計背後可能充斥著 AI 生成的影子。這種不信任感源於現代網頁行銷頁面往往追求視覺上的過度打磨,卻忽略了基礎技術的正確性。
在相容性方面,社群展開了激烈的辯論。保守派認為 2015 年的技術(如 Flexbox 搭配 margin: auto)已足以應付絕大多數 UI 需求,且對於仍在使用舊型硬體或企業環境(如 Windows 7 上的舊版 Chrome)的用戶更為友善。他們主張「關懷用戶」意味著不應輕易捨棄舊技術,甚至認為 IE 11 在特定企業場景中仍具備支援價值。然而,反對者則引用數據指出 IE 11 的市佔率已微乎其微,且持續支援過時瀏覽器會帶來嚴重的安全風險與開發負擔。
針對 CSS 組織架構的討論則聚焦於 Tailwind CSS 與傳統 CSS 級聯(Cascade)的對抗。支持 Tailwind 的開發者強調「共置」(Colocation)的優勢,認為將樣式直接寫在 HTML 中能避免在多個文件間跳轉,並解決了 CSS 命名難題與全局命名空間污染。反觀批評者則認為 Tailwind 產生的代碼極其醜陋且難以閱讀,甚至稱其為「唯寫」(write-only)的解決方案。爭論的核心在於對「級聯」本質的理解:一方認為級聯是 CSS 的靈魂,若能正確教育開發者,級聯能極大地簡化代碼;另一方則認為級聯在現代組件化開發中是種阻礙,這也是 BEM 或 Scoped CSS 興起的主因。
此外,討論也延伸至軟體架構的層次。有觀點將 React 視為瀏覽器端的 PHP,認為其模糊了表現層與業務邏輯的界線。部分資深開發者試圖回歸 MVC 範式,將 React 僅視為 View 層,並提倡「島嶼架構」(Islands Architecture)以提升可維護性。他們認為,與其追求全局狀態管理,不如讓每個組件獨立擁有數據,這能降低組件間的隱性契約,使系統更易於升級與重構。
延伸閱讀
在討論中,開發者提到了幾個值得關注的資源與工具。針對 Tailwind 代碼冗長的問題,有人推薦使用 Tailwind Fold 或 Inline Fold 等編輯器擴充功能來隱藏類名。在架構方面,Eureka 專案被引用作為如何在不使用 React 的情況下,利用 TSX 實現 MVC 分層的範例。此外,關於瀏覽器市佔率的即時數據,Stetic 網站提供了關於 Internet Explorer 等舊版瀏覽器殘餘使用量的參考資訊。