我處於項目的早期階段,隨着項目的發展,它將積累大量的樣式。我們正在討論CSS預處理器mixin模式的優點,用於DRY我們的樣式代碼。當mixin參數化時,好處很明顯 - 幾乎每個實例都必須手寫,所以代碼膨脹相對較少,特別是如果不經常使用特定的參數化。CSS預處理器mixin與標記類
但是,對於未參數化的mixin,它有點模糊。以清除爲例。
在純CSS中,我們可能會創建一個cf
類,然後在標記中調用它,只要有必要。這個效果很好,但是卻帶有純粹的表現類的標記。
在SASS,我們可以通過使用一個mixin做到這一點逃離這個:
//in _mixins.scss
@mixin clear-fix() {
&:before, &:after {
content: '\0020';
display: block;
clear: both;
visibility: hidden;
line-height: 0;
width: 0;
height: 0;
}
}
//in my_component.scss
@import 'mixins';
.my_component {
// styles ...
@include clear-fix()
}
這有集中純粹的表象關注,使我們的風格代碼更易於維護的優點。但不足之處在於,編譯後的CSS將會非常不穩定,而clear-fix mixin會在它混入的每個塊中逐字重複(將其應用於我們以相同方式使用的任何類似的CSS模式)。
我的問題是在代碼中重複混合是否可能導致任何重大問題?還是有另一個我沒有想到的解決方案?
聽起來像一個雙贏。關鍵是要確定少量的實際抽象模式,這些抽象模式恰好需要「清除修復」作爲細節。然後,所使用的類仍然具有語義上的意義,並且「clear-fix」可以僅作爲mixin定義一次,但重複有限次數。 – acjay