Sass 使用插值调用compass sprite Mixin
这种混合的问题是,我无法调用compass提供的不同的sprite混合 我希望能够在一个地方有这个,在不同的SCS中创建精灵,他们只是包括这个共享混合并使用它 到目前为止,Sass似乎不允许我这么做。也许我只是有一种疯狂而糟糕的做事方式(我不是真正的设计师,几个月前我就了解了sass) 谢谢你抽出时间Sass 使用插值调用compass sprite Mixin,sass,compass-sass,css-sprites,mixins,Sass,Compass Sass,Css Sprites,Mixins,这种混合的问题是,我无法调用compass提供的不同的sprite混合 我希望能够在一个地方有这个,在不同的SCS中创建精灵,他们只是包括这个共享混合并使用它 到目前为止,Sass似乎不允许我这么做。也许我只是有一种疯狂而糟糕的做事方式(我不是真正的设计师,几个月前我就了解了sass) 谢谢你抽出时间 @mixin图标按钮($width、$height、$icon bg color、$icon、$sprite name){ .图标库{ 宽度:$width; 高度:$height; 背景色:$图标
@mixin图标按钮($width、$height、$icon bg color、$icon、$sprite name){
.图标库{
宽度:$width;
高度:$height;
背景色:$图标背景色;
.图标{
$icon height:#{$sprite name}-精灵高度(#{$icon});
$icon-width:#{$sprite-name}-精灵宽度(#{$icon});
@包括#{$sprite name}-sprite(#{$icon});
宽度:$图标宽度;
高度:$图标高度;
位置:相对位置;
左:($width-$icon width)/2;
顶部:($height-$icon height)/2;
}
}
}
这个#{something}
是一种ruby插值方法Compass
框架使用ruby编译器从scss/sass生成css。插值只是将一些值(变量)插入字符串的一种方式,如下所示:将“我想说{smth}”
打印到“我想说点什么”
到irb
控制台,如果您之前定义了smth=“something”
变量。您还可能注意到“和”之间的区别。因此,有时您希望在compass中使用以下独立函数:
headings(all) {
color: $color;
}
要将其编译为css:
h1, h2, h3, h4, h5, h6 {
color: #2a2a2a;
}
相反,它会抛出一个错误。为此,您需要插入函数调用:
#{headings(all)} {
color: $color;
}
它会运行。但是如果你尝试用变量进行插值:
$color: #abc;
$color2: "#abc";
@mixin some($color) {
color: #{$color};
}
也将抛出错误,因为在这种情况下插值输出字符串“#abc”。
如果可能的话,尽量避免在compass中使用ruby语法。
注:如果有人能提供更好的编译细节,我将不胜感激,因为我不是红宝石学家,我是pythonist
使现代化
检查此代码:
@mixin setFonting($from, $to, $size) {
$curr: $from;
$to: $to + 3;
@while $curr != $to {
h#{$curr} {
font-size: $size;
}
$curr: $curr + 1;
$size: $size + 2;
}
}
@include setFonting(1, 3, 20px);
它汇编为:
h1 {font-size: 20px;} h2 {font-size: 22px;} h3 {font-size: 24px;} h4 {font-size: 26px;} h5 {font-size: 28px;}
如您所见,compass中的{}
插值在用于定义选择器语句的花括号外工作