用于构造URL的Sass函数

时间:2016-05-22 20:55:43

标签: sass

我正在尝试编写一个返回URL的SCSS函数。 (所以我可以像background-image: getURL(thing);

那样使用它

困难的是我想在其中插入参数,包括转义args,例如#应该变为%23,因此它是网址安全的。

Sass甚至可以做到这一点吗?

@function getURL($name, $color: #ffffff) {
  // ???
}

// How I want it to work:
getURL('foo');
  // returns: url("http://example.com/foo.png?color=%23ffffff")

// And if possible, this would be cool
// (accepting any color type, and turning it into a hex color):
getURL('bar', rgb(255,0,0));
  // returns: url("http://example.com/bar.png?color=%23ff0000")

1 个答案:

答案 0 :(得分:0)

您可以write your own Ruby method进行网址编码和颜色转换。看起来Color#inspect返回没有alpha值的颜色的十六进制表示。

您可以使用SASS' str- index/insert/slice functions进行一些非常简单的网址编码。

伪造它可能更容易:

@function getURL($name, $color-hex-str: ffffff) {
    @return url(http://example.com/#{$name}.png?color=%23#{$color-hex-str});
}