sass - scss 液体混合中的变量
问题描述
在 shopify 中开发主题时,我有一个包含 SCSS 背景的重复代码。现在 SCSS 实际上是一个液体文件,所以我可以在那里获取图像。这是我的代码:
@mixin background-cover($image) {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: -1;
background-size: cover !important;
background: #B3AA9C no-repeat url({{ $image | asset_url }}) center;
}
我以这种方式包括mixin:
.rings {
height: 30rem;
& .background {
@include background-cover('rings.jpg') ;
}
}
现在,当它加载到浏览器中时,它url(...)
是空的,并且设置了背景颜色。
如果我没记错的话,它应该编译为 CSS,并替换url({{ $image | asset_url }})
为url({{ 'rings.jpg' | asset_url }})
. 为什么这段代码不起作用?有没有办法在液体标签中包含 mixin 变量?
解决方案
您的scss
文件必须.liquid
在 ex 之后。customs.scss.liquid
用于{{ 'customs.scss.css' | asset_url | stylesheet_tag }}
包括
与 danielarend 类似的答案,需要从单引号更改'
为双引号"
。 rings.jpg
存储在assets
文件夹中。
@mixin background-cover($image) {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: -1;
background-size: cover !important;
background: #B3AA9C no-repeat url($image) center;
}
.rings {
height: 30rem;
& .background {
@include background-cover("{{ 'rings.jpg' | asset_url }}") ;
}
}
但是,建议不要使用 sass。 Shopify 正在弃用 sass
推荐阅读
- html - Flex 方向行,其内容居中
- apache-kafka - 消费者组没有活跃成员 - Kafka
- docker - 仅来自基本映像的入口点的 Dockerfile
- xpath - 尝试使用 Google 表格和 importxml() 提取文本时出错
- javascript - Google reCaptcha Javascript 验证
- html - 在页面底部显示页脚
- javascript - 如何从方法访问构造函数中声明的变量?
- asp.net-core - Sqlite 和 SqlServer 提供程序异常类型
- typescript - 我可以设置类型参数的可能类型吗?
- r - 获取R数据框中字符值的出现频率