Sass 背景图像 mixin
我对 Sass 有点陌生,但我正在尝试为自己创建一个工作流程。我为我的主题设计生成“颜色包”,并且需要为我的 mixin 指定以下变量。有没有更好的方法来做到这一点?:
// folder,filename,extension,repeat,x-pos,y-pos
@mixin background ($folder:style1, $img:file, $type:png, $repeat:no-repeat, $x:0, $y:0) {
background-image: url(./images/#{$folder}/#{$img}.#{$type});
background-repeat: #{$repeat};
background-position: #{$x}px #{$y}px;
}
我像这样插入:
#nav {
@include background(style2,myimage,png,repeat-x,10,10);
}
这会产生这样的结果:
#nav {
background-image: url(./images/style2/myimage.png);
background-repeat: repeat-x;
background-position: 10px 10px;
}
我更喜欢在可能的情况下使用 CSS 速记,但我在输出中遇到了错误。如果这不是最好的方法,我将不胜感激任何专家的建议。
I'm kind of new to Sass, but I'm attempting to create a workflow for myself. I generate "color packs" for my theme designs and need to specify the following variables for my mixin. Is there a better way to do this?:
// folder,filename,extension,repeat,x-pos,y-pos
@mixin background ($folder:style1, $img:file, $type:png, $repeat:no-repeat, $x:0, $y:0) {
background-image: url(./images/#{$folder}/#{$img}.#{$type});
background-repeat: #{$repeat};
background-position: #{$x}px #{$y}px;
}
I'm inserting like so:
#nav {
@include background(style2,myimage,png,repeat-x,10,10);
}
which yields this:
#nav {
background-image: url(./images/style2/myimage.png);
background-repeat: repeat-x;
background-position: 10px 10px;
}
I'd prefer to use CSS shorthand when possible, but I ran into errors with the output. I'd appreciate any expert advice if this is not the best way to do it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据您的包的结构/应用方式,您也许可以使用循环来生成一堆通用样式。请参阅此处的文档: http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE .html#id35
您真的需要 3 个独立的组件来获取图像网址吗?
$img
然后将其设置为/folder/img.ext
不是更容易吗?另外,顺便说一句,您不需要
#{}
来重复。我希望这就是您所追求的……这个问题对于您实际需要的结果来说并不是很具体。
干杯,
Jannis
更新:
好的,我看到您已经更新了您的问题(谢谢您)。我相信这对于一般用途可能会更好一点:
然后将输出:
或者您可以使用速记版本:
它将生成:
最后如果您想单独指定图像目录的基本路径您可以执行以下操作:
然后将生成:
这是您需要的吗?
如果没有,请随时更新问题或回复/评论。
depending on how your packs are structured/applied you might be able to use a loop to generate a bunch of generic styles. See the documentation here: http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#id35
Do you really need 3 separate components to get your image url? wouldn't:
$img
and then setting that to/folder/img.ext
be far easier?Also, you don't need the
#{}
for repeat by the way.I hope this is what you're after… the question is not very specific in terms of what you need the outcome to actually be.
Cheers,
Jannis
Update:
Okay, I see you've updated your question (thanks for that). I believe this could be a little better for general use:
This will then output:
Or you can use the shorthand version:
Which will generate:
Lastly if you want to specify your base path to your image directory separately you can do the following:
This will then generate:
Is this what you needed?
If not feel free to update the question or reply/comment.
其他一些示例:
图像路径:
颜色
创建混合:
使用混合:
结果:
some other sample:
path to the image:
color
creating the mixin:
using the mixing:
result:
拿一个 $var ,它会让你更容易。
CSS
take one $var and it will make it easier for you.
css