SASSの@if制御ディレクティブを使用するのは私の最初の試みです。
フォルダー内に最適化された画像のリストがあります。JPGのように小さい画像もあれば、PNGのように小さい画像もあります。
@ifルールを使用して、「そのファイルのJPGが存在する場合は、この@includeを使用し、そうでない場合は、もう1つを使用してください」と言いたいのです。
(例のgifは、私が少なくとも他の部分が正しいかどうかを明確にするためにそこにあります。)
私の例:
$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を使用していますが、このすばらしいミックスインのように画像タイプのカスタム変数を定義することはできません。だから私はこれにアプローチする方法がわかりません。
更新: @lnrbobが指摘したように、SASSで既存のファイルをチェックすることはできません。彼が優れた@ifの例を提供し、長期的にはこのSASS機能を理解するのに役立ったので、私は正解としてマークしました。