css - Scss 函数中的嵌套 if 语句

标签 css function if-statement sass

我想将两个值传递给函数“sprite-chooser()”,这样我就可以选择要加载的 Sprite 是亮背景还是暗背景。在加载 sprite 之前,我需要首先检查它是哪个 UI - 所以我有两个 @if 语句和嵌套的 @if 语句,但收到一条错误消息:语法错误:函数 sprite-chooser finished without @return.

@function sprite-chooser($ui-for, $bg-color) {
    @if ($ui-for == "ui-1") {
        @if (lightness( $bg-color ) > 60 and $ui-for == "ui-1") {
            @return #{$sprite-dark-ui-1};
        }    
        @else {
            @return #{$sprite-light-ui-1};
        }
    }
    @else if ($ui-for == "ui-2") {
        @if (lightness( $bg-color ) > 60 and $ui-for == "ui-2") {
            @return #{$sprite-dark-ui-2};
        }
        @else {
            @return #{$sprite-light-ui-2};
        }
    }
}
$background-color: #fff;
.class-name {
    background: url(sprite-chooser("ui-1", $background-color)) 0 0 no-repeat;
}

最佳答案

你需要另一个else案例

...
    @else if ($ui-for == "ui-2") {
        @if (lightness( $bg-color ) > 60 and $ui-for == "ui-2") {
            @return #{$sprite-dark-ui-2};
        }
        @else {
            @return #{$sprite-light-ui-2};
        }
    }
    @else { @return null; }
}

关于css - Scss 函数中的嵌套 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234936/

相关文章:

function - PowerShell 函数返回最佳实践

javascript - 在 node.js 中更改名称后无法访问函数

python - JUMP_FORWARD 或 JUMP_ABSOLUTE 与 IF 语句? Python 2.5

c# - Visual Studio 2017 C# 格式化 : One-Line If Statements

html - 容器外的 child

html - float 元素周围的边距?

c++ - 如何从单个C++ return语句返回多个值中的一个?

html - 对表单元素进行分组的最正确方法是什么?

javascript - 有没有办法使用样式化的组件有条件地更改组件的类型?

if-statement - 一般编程 - else 或 else if 为清楚起见