这是我第一次尝试使用来自SASS的@if 控制指令。
我在一个文件夹中有一个优化图像的列表,其中一些像 JPG 一样小,而另一些像 PNG 一样小。
使用@if 规则,我想说“如果该文件的JPG 存在,则使用此@include,否则使用另一个”。
(示例中的 gif 只是为了澄清我是否至少得到了 else if 部分正确。)
我的例子:
$list: A, B, C;
$type: jpg;
@mixin portfolio-images {
@each $item in $list {
a[href*="#{$item}"] span {
/* @if starts */
@if $type == jpg {@include background-image-retina("#{$item}.jpg");}
@else if $type == png {@include background-image-retina("#{$item}.png");}
@else {@include background-image-retina("#{$item}.gif");}
/* @if ends */
@include hide-text;
width: 300px;
height: 150px;
}
}
}
不知何故,我似乎弄错了,需要你的帮助。JPG 的显示很好,但 PNG 根本不显示 - CSS 文件中没有编译输出。
我使用@include background-image-retina并且不能像在这个美妙的 mixin 中那样为图像类型定义自定义变量。所以我不确定如何解决这个问题。
更新:就像@lnrbob 指出的那样 - 无法使用 SASS 检查现有文件。我将答案标记为正确,因为他提供了一个出色的 @if 示例,从长远来看,它帮助我理解了这个 SASS 功能。