幽默:使用CSS中!important的原因只有一個

banq發表於2022-03-22

CSS的語法!important很容易被誤用。來自CSS 聯合設計師Steven Pemberton認為:
新增 !important 僅出於一個原因:法律要求某些文字採用指定的字型大小。
!important 阻止CSS級聯改變它。
其他任何事情都可能是誤用,並且表明您可能無法正確理解CSS級聯。
 
這是!important message to us all.
 
其他HN網友意見:
內聯樣式(用於更快的初始頁面載入)有時需要透過 !important 覆蓋(在頁面載入後)。
 
我喜歡 Svelte 的部分原因是它透過將 CSS 劃分為我正在處理的 UI 元件來解決問題。感覺很自然,如果我在一個元件的檔案中編寫 CSS,它通常不應該被其他元件看到。
即使沒有 Svelte,如果您執行以下操作,人們在使用 CSS 時遇到的大多數問題都會消失:
  • - 避免級聯(即沒有巢狀選擇器,除非“沒有其他方法”)
  • - 為樣式和頁面/元件佈局實現單獨的選擇器(關注點分離)
  • - 使用良好的命名約定並堅持下去

 
在編寫程式碼的漫長職業生涯中,我覺得我已經非常擅長編寫乾淨、可維護、易讀、可更改的程式碼。尤其是我最有經驗的語言。
我覺得我不知道如何編寫可維護、易讀、可更改的 CSS。就像,這不僅僅是因為我沒有時間——我只是不知道該怎麼做,儘管我付出了所有努力,但 CSS 總是變得可怕。
 
作為一個喜歡編寫 CSS 並認為自己相當擅長它的人,我得出的結論是編寫 CSS 是一種反模式,如果您希望團隊快速構建具有可維護的“前端樣式”的介面層”,它應該阻止編寫 css 的能力。
 
對,這種說法的缺陷。> 其他的都可能是誤用,也說明你可能沒有正確理解級聯。
是它假定改變 "整個級聯 "的成本是最小的。而且很容易設計出一個最初的級聯,它可以完美地滿足你的需要,而不需要隨著設計的發展進行任何改變。換句話說,它假設了經典的瀑布法,即一旦 "實施 "階段開始,規格和設計就已經完成,而且永遠不會改變。
建議是:CSS並沒有什麼問題,只是開發者在開始編碼之前不能想出一個完美的CSS設計。
在我看來,CSS的一個大問題正是它的級聯性質。據我所知,目前還沒有一個好的工具可以告訴你,由於某條CSS規則的改變,所有的東西都會改變。我們認為開發者的大腦中應該有這樣一個工具,如果你沒有,你就不是一個合格的開發者。)
 
我最終經常使用 !important 的一個地方是為網站編寫使用者樣式/擴充套件。顯然不是一個常見的用例,但我很高興 CSS 有 `!important`。
如果您明確地嘗試覆蓋另一個您無法控制的規則,則`!important` 比其他規則更慣用。

 

相關文章