所以,你聽說了 Tailwind CSS,並且想把它導入你的新專案。但那些行內樣式看起來也太亂了吧——它們看起來很像我們以前被告誡要避免的那種舊式 style="font-size: 12px; color: green; font-style: italics" 寫法。這到底是怎麼回事?我們是在倒退嗎?

純 CSS 類別的問題

在你急著轉身逃跑之前,我想我們都曾在維護大型程式碼庫時遇過這個問題:

/* 開發者 A 在 2 年前寫的 */
.card-variant-3 {
  background-color: #f3f4f6;
  padding: 1rem;
  border-radius: 0.5rem;
}

兩年後,樣式表已經長到 5,000 行。而這個類別可能會在數百萬行的程式碼庫中任何地方被使用。

開發者 B 太害怕修改 .card-variant-3,因為他不知道它是不是被某個很冷門的行銷頁面使用……所以他們只好在檔案底部再附加一個新類別。

.card-variant-3-updated {
  background-color: #f3f4f6;
  padding: 1.5rem; /* <--- 只改了 padding! */
  border-radius: 0.5rem;
} 

問題在於:打包大小會隨著應用程式線性成長。你得把時間花在命名上(.main-content-inner.card-body-flex),還得在 HTML 和 CSS 檔案之間來回切換。

Tailwind 帶給我們什麼

Tailwind 透過 CSS 變數建立像 "bg-mint-500""text-mint-500""border-mint-500" 這類的「工具類別」,讓你可以直接在 HTML 中這樣使用:

<h1 className="text-mint-500"> Introduction </h1>

這種重構帶給我們兩個優勢:

  • CSS 打包體積更小:因為你會一再重複使用 bg-mint-500p-4 這些類別,不需要不斷寫出新的 CSS 行。無論你有 10 個頁面還是 10,000 個頁面,正式環境的 CSS 大小幾乎都維持不變(通常只有傳統樣式表的一小部分)。

  • 重構風險大幅降低:所有決定這個元素外觀的東西,都存在於這個元件區塊內。如果你刪掉這個元件,樣式也會跟著立刻刪除。完全不會有影響到你應用程式另一邊側欄的風險。

那可讀性呢??

這樣做之所以沒問題,最大的原因是你其實只需要偶爾看它。

在現代網頁開發中,我們幾乎不再撰寫原始、靜態的 HTML 頁面了。我們使用的是以元件為基礎的架構(React、Vue、Svelte、Blade、Astro 等)。

當你像這樣為一個元素區塊加上樣式時,你會立刻把它封裝成可重用的元件。例如:

<Card variant="premium">

一旦這個元件被儲存下來,那些「醜陋」的實作細節就會被乾淨、語意化的自訂標籤遮蔽起來。你的主要版面配置程式碼依然保持整潔,而那些混亂的樣式則被安全地隔離在單一檔案之中。

結論

我們用較不美觀的標記,換來了更穩固的可維護性。我們讓 HTML 在開發時看起來雜亂一些,換取正式環境的架構能保持完全乾淨、可預測,而且彼此隔離。

下一篇

我會在實際專案中進一步討論 Tailwind CSS。歡迎追蹤我,閱讀更多這類文章!

請在下方留言——你是怎麼管理 CSS 的?你覺得工具類別是一個好主意嗎??


原文出處:https://dev.to/cathylai/tailwind-css4-why-those-inline-styles-are-actually-more-scalable-a-senior-css-developers-guide-hdj


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝16   ❤️1
492
🥈
我愛JS
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登