2013-02-14 54 views
3

这可能很难解释。有没有一种方法可以减少不写出@child参数而不会超载混音?我真的不想要两个混合。如果我使用“”双引号输出。我希望LESS编译器将其留空。LESS预处理和空参数?

更少的代码

.build-on(size, @child) 
{ 
    &--1-1 @{child} 
    {    
     width: 100%; 
    } 

    &--1-2 @{child} 
    { 
     width: 50.0%; 
    } 

    &--1-3 @{child} 
    { 
     width: 33.3%; 
    } 

    &--1-4 @{child} 
    { 
     width: 25.0%; 
    } 

    &--1-5 @{child} 
    { 
     width: 20.0%; 
    } 
} 

// I might need to provide a child element 

.data-table 
{ 
    .build-on(size, table); 
} 

// I might not 

.grid 
{ 
    .build-on(size, ""); 
} 
+0

你在寻找类似默认值的东西吗? – dmi3y 2013-02-14 03:59:27

+0

我正在寻找输出为.grid - 1-1如果没有参数传递。现在它的.grid - 1-1“”但是,我确实有时需要通过一个论点。我真的不想为此创造另一种混搭。 – 2013-02-14 04:10:37

回答

3

通过它,像这样:

.yourClass 
{ 
    .build-on(size, ~''); 
} 

或更好,但...

定义默认:.build-on(size, @child: ~'') { ... }则不需要进行第二次:

.yourClass 
{ 
    .build-on(size); 
} 
+0

你摇滚。非常感谢。 – 2013-02-15 03:03:06

+0

这就是所谓的默认值;)http://lesscss.org/#-parametric-mixins – dmi3y 2013-02-15 15:59:54

+0

没有〜它写出了一个空间。再次感谢。 – 2013-02-19 04:31:45