【发布时间】:2012-09-03 20:16:16
【问题描述】:
这是我第一次尝试使用来自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 并且不能像this fabulous mixin 那样为图像类型定义自定义变量。所以我不确定如何解决这个问题。
更新:就像@lnrbob 指出的那样 - 无法使用 SASS 检查现有文件。我将答案标记为正确,因为他提供了一个出色的 @if 示例,从长远来看,它帮助我理解了这个 SASS 功能。
【问题讨论】:
标签: css image if-statement sass