2013-05-07 70 views
1

據我瞭解,這是有效的LESS語法:有麻煩LESS和混入

.some-mixin(@color) 
{ 
    border-top:1px solid @color; 
} 

.some-element { 
    .some-mixin (#FFFFFF); 
} 

,並會導致這樣的:

.some-element { 
    border-top:1px solid #FFFFFF; 
} 

現在讓我們說我們原來的CSS語法像這樣:

ul.sidebar li.categoryA { border-left: 15px solid #F3661F; } 
ul.sidebar li.categoryA.active, 
ul.sidebar li.categoryA.active a { 
    background: #F3661F; 
    border-top:1px solid #F3661F; 
    border-bottom: 1px solid #F3661F; 
} 
ul.sidebar li.categoryA:hover { 
    color:#AAA; border-left:229px solid #F3661F; 
} 

Le t也考慮到了,根據ul.sidebar li有很多不同的「類別」(而不僅僅是A),只是顏色不同而已。所以,這就是我想:

/* MIXIN */ 

.category-item (@color) 
{ 
    border-left: 15px solid @color; 

    &.active, &.active a { 
     background: @color; 
     border-top: 1px solid @color; 
     border-bottom: 1px solid @color; 
    } 

    &:hover { 
     color: @color; 
     border-left: 229px solid @color; 
    } 
} 

/* RULES */ 

ul.sidebar li { 
    .categoryA { .category-item(#F3661F); } 
    .categoryB { .category-item(#FF0000); } 
    .categoryC { .category-item(#00FF00); } 

    /* Etc... */ 
} 

然而:這最後一個是工作。

我做錯了什麼?我發明了另一個...少了嗎?


P.S.剛剛發現this answer。猜猜我想要做的是仍然不受支持?嗯...

+0

我看不到你想要做的任何部分,在LESS中不會被支持。我必須在這裏錯過一些東西...因爲我沒有看到問題。 – 2013-05-07 16:32:58

回答

3

試試這個:

ul.sidebar li { 
    &.categoryA { .category-item(#F3661F); } 
    &.categoryB { .category-item(#FF0000); } 
    &.categoryC { .category-item(#00FF00); } 

    /*Etc.*/ 
} 

這個工作正常,我。輸出是:

ul.sidebar li.categoryA { 
    border-left: 15px solid #f3661f; 
} 
ul.sidebar li.categoryA.active, 
ul.sidebar li.categoryA.active a { 
    background: #f3661f; 
    border-top: 1px solid #f3661f; 
    border-bottom: 1px solid #f3661f; 
} 
ul.sidebar li.categoryA:hover { 
    color: #f3661f; 
    border-left: 229px solid #f3661f; 
} 
... 
+0

這真的很奇怪...讓我檢查一下...(再一次)... – 2013-05-07 16:36:00

+0

它不可能是LESS的版本,因爲這個版本從1.1.0開始工作,如果你在http:// less2css上嘗試它.org /你可以檢查你的代碼中的拼寫錯誤。 – 2013-05-07 16:39:42

+0

我真的不知道我在做什麼錯......但我想你是對的(可能與'&有什麼關係?不知道......)非常感謝! :-) – 2013-05-11 13:39:20