Sass 混合巨集 VS 繼承 VS 佔位符

2022-05-08 18:36:11 字數 967 閱讀 7399

什麼時候用混合巨集,什麼時候用繼承,什麼時候使用佔位符?」其實他們各有各的優點與缺點,先來看看他們使用效果:

a) sass 中的混合巨集使用

總結:編譯出來的 css 清晰告訴了大家,他不會自動合併相同的樣式**,如果在樣式檔案中呼叫同乙個混合巨集,會產生多個對應的樣式**,造成**的冗餘,這也是 csser 無法忍受的一件事情。不過他並不是一無事處,他可以傳引數。

個人建議:如果你的**塊中涉及到變數,建議使用混合巨集來建立相同的**塊。

b) sass 中繼承

同樣的,將上面**中的混合巨集,使用類名來表示,然後通過繼承來呼叫:

總結:使用繼承後,編譯出來的 css 會將使用繼承的**塊合併到一起,通過組合選擇器的方式向大家展現,比如 .mt, .block, .block span, .header, .header span。這樣編譯出來的**相對於混合巨集來說要乾淨的多,也是 csser 期望看到。但是他不能傳變數引數。

個人建議:如果你的**塊不需要專任何變數引數,而且有乙個基類已在檔案中存在,那麼建議使用 sass 的繼承。

c) 佔位符

最後來看佔位符,將上面**中的基類 .mt 換成 sass 的佔位符格式:

總結:編譯出來的 css **和使用繼承基本上是相同,只是不會在**中生成佔位符 mt 的選擇器。那麼佔位符和繼承的主要區別的,「佔位符是獨立定義,不呼叫的時候是不會在 css 中產生任何**;繼承是首先有乙個基類存在,不管呼叫與不呼叫,基類的樣式都將會出現在編譯出來的 css **中。」

總結**

Sass之混合巨集 繼承 佔位符

1 混合巨集。當樣式變得越來越複雜,需要重複使用大段的樣式時,使用變數就無法達到我們目的了。這個時候混合巨集就派上用場了。而使用混合巨集時,首先要宣告混合巨集,而宣告混合巨集時有兩種,不帶引數混合巨集和帶引數混合巨集兩種。1.1不帶引數混合巨集的宣告 mixin border radius例如在乙個...

Sass混合巨集

相當於函式,統一寫大段重複的樣式。在 sass 中,使用 mixin關鍵字來宣告乙個混合巨集。如 mixin border radius 在 sass 中,使用 include關鍵字來呼叫乙個混合巨集。如 button 編譯出來的 button 在混合巨集中,可以傳乙個不帶任何值的引數,比如 mix...

組合vs繼承

1 通過children 傳遞dom children屬性將子元素直接傳遞到輸出。function fancyborder props function welcomedialog jsx 標籤內的任何內容都將通過children屬性傳入fancyborder。由於fancyborder在乙個內渲染...