LESS巢狀中的Mixins和classes

世有因果知因求果發表於2015-10-27

less的巢狀規則對於有效組織你的css程式碼有較好的作用。其中使用mixin或者class都可以作為被巢狀的實體,但是二者還是有區別的:

  • mixin必須由.name+(){}的pattern來定義,而class則只需.name{}來定義(注意:class依然可以通過.name直接在less原始檔中引入該class的所有rule)
  • mixin本身並不會在最終編譯輸出的css檔案中以類出現,而class最終會以.name{}輸出該class
.class-1{
property-1: a;
}
.class-2{
.class-1;
property-2: b;
}

上面的less程式碼最終將輸出以下的css程式碼:

.class-1 {
property-1: a;
}
.class-2 {
property-1: a;
property-2: b;
}

再來看看下面的less程式碼:

.class-1-mixin(){
property-1: a;
}
.class-2{
.class-1-mixin();
property-2: b;
}

上面這段程式碼由於.class-1-mixin只是一個mixin,被呼叫編譯後並不輸出.class-1-mixin這個class!!!

.class-2 {
property-1: a;
property-2: b;
}

 

相關文章