Sass 在SCSS中使用函数和if语句
我试图为scss键和值创建一个if语句 例如:Sass 在SCSS中使用函数和if语句,sass,Sass,我试图为scss键和值创建一个if语句 例如: $directionLang: rtl; @function rightOrLeft($directionLang) { @if $directionLang == rtl { @return 'left: 10px'; } @else { @return 'margin-left: 230px'; } } .arrow-icon { #{rightOrLeft($directionLang)}; } 问题出在.arrow图标内
$directionLang: rtl;
@function rightOrLeft($directionLang) {
@if $directionLang == rtl {
@return 'left: 10px';
}
@else {
@return 'margin-left: 230px';
}
}
.arrow-icon {
#{rightOrLeft($directionLang)};
}
问题出在.arrow图标内
我得到一个错误:
错误:属性“#{rightOrLeft($directionLang)}”后面必须跟一个
“:”
有什么建议吗
谢谢 函数用于获取值,您必须将其作为属性的值调用 在您的情况下,您必须使用mixin并将其包含在您的类中:
在这种情况下,您应该使用SASS/SCSS
@mixin
而不是@function
- 应使用SASS/SCSS中的
提供/计算值,例如@函数
.arrow-icon { margin-left: functionName(args); }
功能更强大,但当您想要获得完全不同的css规则时,它也适合您的情况 代码片段示例: HTML@mixin
<span class="arrow-icon">←</span>
@include right或left(directionLang)
。有关函数的更多信息,请参见Sass文档:
$directionLang: rtl;
//$directionLang: ltr; //uncomment for test
@mixin rightOrLeft($directionLang) {
@if $directionLang == "rtl" {
left: 10px;
}
@else {
margin-left: 230px;
}
}
.arrow-icon {
@include rightOrLeft($directionLang);
}