關于單類和多類的爭論也許是一個偽命題,這個權衡上是見仁見智的,但是畢竟是在實習過程中經(jīng)常碰到的問題,還是稍加總結一下。
Jonathan Lehman在文中指出,單類的方法問題在于:
- 當一個元素的狀態(tài)不斷增加,修飾符會拖得很長,例如
.Btn-secondary--small--disabled,這時單類就失去了優(yōu)勢。 - 并且在大型網(wǎng)站中,單類會變得非常多而難以維護。
下面借用了大漠博客中的例子:
多類寫法
HTML
<div class="btn btn--twitter">twitter</div>
<div class="btn btn--facebook">facebook</div>
CSS
.btn {
min-width: 100px;
padding: 1em;
border-radius: 1em;
}
%twitter-background {
color: #fff;
background: #55acee;
}
%facebook-background {
color: #fff;
background: #3b5998;
}
.btn {
&--twitter {
@extend %twitter-background;
}
&--facebook {
@extend %facebook-background;
}
}
單類寫法
HTML
<div class="btn--twitter">twitter</div>
<div class="btn--facebook">facebook</div>
CSS
%button {
min-width: 100px;
padding: 1em;
border-radius: 1em;
}
%twitter-background {
color: #fff;
background: #55acee;
}
%facebook-background {
color: #fff;
background: #3b5998;
}
.btn {
&--twitter {
@extend %button;
@extend %twitter-background;
}
&--facebook {
@extend %button;
@extend %facebook-background;
}
}
結論是,最好的方法是結合實際情況,適當情況可以混合使用,以達到最好的效果。