5-1. 何時使用混合器
利用混合器,可以很容易地在樣式表的不同地方共享樣式。如果你發現自己在不停地重復一段樣式,那就應該把這段樣式構造成優良的混合器,尤其是這段樣式本身就是一個邏輯單元,比如說是一組放在一起有意義的屬性。
判斷一組屬性是否應該組合成一個混合器,一條經驗法則就是你能否為這個混合器想出一個好的名字。如果你能找到一個很好的短名字來描述這些屬性修飾的樣式,比如rounded-corners
fancy-font
或者no-bullets
,那么往往能夠構造一個合適的混合器。如果你找不到,這時候構造一個混合器可能并不合適。
混合器在某些方面跟css
類很像。都是讓你給一大段樣式命名,所以在選擇使用哪個的時候可能會產生疑惑。最重要的區別就是類名是在html
文件中應用的,而混合器是在樣式表中應用的。這就意味著類名具有語義化含義,而不僅僅是一種展示性的描述:用來描述html
元素的含義而不是html
元素的外觀。而另一方面,混合器是展示性的描述,用來描述一條css
規則應用之后會產生怎樣的效果。
在之前的例子中,.notice
是一個有語義的類名。如果一個html
元素有一個notice
的類名,就表明了這個html
元素的用途:向用戶展示提醒信息。rounded-corners
混合器是展示性的,它描述了包含它的css
規則最終的視覺樣式,尤其是邊框角的視覺樣式。混合器和類配合使用寫出整潔的html
和css
,因為使用語義化的類名亦可以幫你避免重復使用混合器。為了保持你的html
和css
的易讀性和可維護性,在寫樣式的過程中一定要銘記二者的區別。
有時候僅僅把屬性放在混合器中還遠遠不夠,可喜的是,sass
同樣允許你把css
規則放在混合器中。