css - 忽略部分sass文件进行解析

标签 css sass liquid

我试图让 SASS 在解析时忽略我的部分 .scss 代码。

这是我正在制作的 shopify 主题。我的 scss 文件被编译成 .css.liquid 文件,这样我也可以将 shopify 的模板语言 liquid 放入 css 中。

我希望编译后的 css.liquid 看起来像这样:

.header--logo {
  background: url({{ 'header-logo.png' | asset_url }}) 0 0 no-repeat;
}

在 LESS 中我曾经这样做过:

.header--logo {
  background: ~"{{ 'header-logo.png' | asset_url }}" 0 0 no-repeat;
}

SASS 是否也有一种简单的方法来做同样的事情?

谢谢!

最佳答案

Sass 不提供转义所有声明的功能。

要按原样传递 CSS 值,而不用 Sass 解析,将其放入引号中并使用 unquote() 函数删除引号:

.header--logo {
  background: unquote("url({{ 'header-logo.png' | asset_url }}) 0 0 no-repeat");
}

如果你经常使用它,你可以使用辅助函数让它变得更容易一些:

@function i($str) {
  @return unquote($str);
}

.header--logo {
  background: i("url({{ 'header-logo.png' | asset_url }}) 0 0 no-repeat");
}

或者,您可以“忽略”值的一部分而不是整个值。你需要插值来做到这一点,我。 e. #{unquote('...')}。用法示例:

.header--logo {
  background: url(#{unquote("{{ 'header-logo.png' | asset_url }}")}) 0 0 no-repeat;
}

所有方法的演示:http://sassmeister.com/gist/4920a805f0451192ec9b

关于css - 忽略部分sass文件进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136523/

相关文章:

sass - 与其他人 SCSS

css - Laravel Mix - 当本地主机上的网站不在根文件夹中时,URL 处理工作出错

sass - 1px 边框摆脱 SUSY 网格

javascript - 将自动图像 slider 更改为链接点击 slider

php - 网站适合平板电脑的屏幕,视口(viewport)不工作?

jquery - IE 中页脚后的空白

javascript - 如何在 Jekyll Liquid 语法的 for 循环中获取图像的宽度和高度并将其转换为 js $ 变量?

css - 是否可以在 CSS 中使用字符串宏?

javascript - 带有动态图像 block 的 Shopify 光滑轮播

ruby - 有没有办法从 Jekyll 的 [site.time] 属性轻松解析年份?