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; }