将 url() 调用转换为字符串
Convert url() call to string
我正在尝试为视网膜图像编写透明背景图像混合,但是,我被卡住了,因为 Stylus 将 url() 视为调用并且不允许任何字符串操作。
mixin 的基础:
background-image($file, $retina = false)
if $retina == "2x"
$path = pathjoin(dirname($file), basename($file, extname($file)) + '@2x' + extname($file))
background-image: unquote($path)
else
background-image: $file
这意味着这有效
.foo {
background-image: "url(img/man-with-tablet.jpg)" 2x;
}
但我想要干净的 CSS 语法:
.foo {
background-image: url(img/man-with-tablet.jpg) 2x;
}
这会导致错误 TypeError:预期的字符串、标识或文字,但得到 call:url(img / man-with-tablet .jpg)
有什么方法可以将 $file 从 url() 调用转换为字符串?谢谢!
您可以将此调用强制转换为字符串(通过将其与 ''
连接)。但在这种情况下,您需要将 url()
调用的参数用引号引起来。
background-image($file, $retina = false)
if $retina == "2x"
$file = '' + $file
$path = pathjoin(dirname($file), basename($file, extname($file)) + '@2x' + extname($file))
background-image: unquote($path)
else
background-image: $file
.foo {
background-image: url('img/man-with-tablet.jpg') 2x;
}
我正在尝试为视网膜图像编写透明背景图像混合,但是,我被卡住了,因为 Stylus 将 url() 视为调用并且不允许任何字符串操作。
mixin 的基础:
background-image($file, $retina = false)
if $retina == "2x"
$path = pathjoin(dirname($file), basename($file, extname($file)) + '@2x' + extname($file))
background-image: unquote($path)
else
background-image: $file
这意味着这有效
.foo {
background-image: "url(img/man-with-tablet.jpg)" 2x;
}
但我想要干净的 CSS 语法:
.foo {
background-image: url(img/man-with-tablet.jpg) 2x;
}
这会导致错误 TypeError:预期的字符串、标识或文字,但得到 call:url(img / man-with-tablet .jpg)
有什么方法可以将 $file 从 url() 调用转换为字符串?谢谢!
您可以将此调用强制转换为字符串(通过将其与 ''
连接)。但在这种情况下,您需要将 url()
调用的参数用引号引起来。
background-image($file, $retina = false)
if $retina == "2x"
$file = '' + $file
$path = pathjoin(dirname($file), basename($file, extname($file)) + '@2x' + extname($file))
background-image: unquote($path)
else
background-image: $file
.foo {
background-image: url('img/man-with-tablet.jpg') 2x;
}