2015-10-25 21 views
2

如何将以LESS编写的以下mixin转换为SASS?使用Guarded命名空间转换Mixin到Sass

.box_gradient (@from, @to) when (iscolor(@from)) and (iscolor(@to)) { 
    background-image: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to)); /* Saf4+, Chrome */ 
    background-image: -webkit-linear-gradient(top, @from, @to); /* Chrome 10+, Saf5.1+, iOS 5+ */ 
    background-image: -moz-linear-gradient(top, @from, @to); /* FF3.6 */ 
    background-image:  -ms-linear-gradient(top, @from, @to); /* IE10 */ 
    background-image:  -o-linear-gradient(top, @from, @to); /* Opera 11.10+ */ 
    background-image:   linear-gradient(to bottom, @from, @to); 
} 
+1

SO不是代码转换服务(参见:http://meta.stackoverflow.com/questions/296119/is-how-do -i-转换代码从 - 这-的语对这个语言太宽)。你有没有尝试过任何东西? – cimmanon

+1

如果问题是关于保护名称空间,则源代码不会显示它。 –

+1

@cimmanon我一直在寻找的是验证是否转换这样的事情是甚至可能的。一个简单的答案,如'这可以通过使用条件与SCSS的关系来实现',将会是一个更好的答案,而不是如果它是一个合适的问题,就不会提高标志。 – Arkhitech

回答

2

这在使用SASS条件语句实现:

.box_gradient (@from, @to) { 
    @if (iscolor(@from) and iscolor(@to)) { 
    background-image: -webkit-gradient(linear, left top, left bottom, from(@from), to(@to)); /* Saf4+, Chrome */ 
    background-image: -webkit-linear-gradient(top, @from, @to); /* Chrome 10+, Saf5.1+, iOS 5+ */ 
    background-image: -moz-linear-gradient(top, @from, @to); /* FF3.6 */ 
    background-image:  -ms-linear-gradient(top, @from, @to); /* IE10 */ 
    background-image:  -o-linear-gradient(top, @from, @to); /* Opera 11.10+ */ 
    background-image:   linear-gradient(to bottom, @from, @to); 
    } 
}