我是SCSS的新手,不确定如何使用它。我到处寻找SO和其他地方,但找不到解决方案。
我正在开发一个显示电话列表的应用程序。我通过调用REST API获得此列表(以JSON形式)。所有电话都具有要显示的相同类型的信息,例如名称,型号,价格,可用量,数量。
请注意,我的问题与SASS中的Access HTML属性值不同。此链接讨论计算父元素的子代数。在我的情况下,我想获取样式表代码(颜色,字体大小,字体宽度),具体取决于JSON对象的属性之一的值。
我正在尝试做的是:
我已经在SCSS中阅读了有关@mixin的内容,并且他们可以接受参数。我想我可以用它来传递我的电话类型的整数/数字值。
我所看到的所有示例都是通过传入参数值从另一个SCSS文件中调用@mixin。
这是将参数值传递给@mixin的唯一方法吗?
如果有人可以告诉我是否有办法将参数值(在我的情况下为电话类型)从HTML传递给SCSS @mixin,那将是很好的。
非常感谢您的帮助。
谢谢。
Noo*_*bhi 13
您可以使用CSS自定义属性(变量)将值从HTML传递到CSS类
这是工作示例:
.fill-color {
display: block;
height: 40px;
width: 40px;
color: var(--color);
}
Run Code Online (Sandbox Code Playgroud)
<div class="fill-color" style="--color: blue;">Test</div>
<div class="fill-color" style="--color: green;">Test</div>
<div class="fill-color" style="--color: red;">Test</div>
Run Code Online (Sandbox Code Playgroud)
小智 5
好的,这就是我猜你在问什么?
我想根据我的 JSON 对象的属性之一的值获取样式表代码(颜色、字体大小、字体宽度)。
这是不可能的,因为这个想法是处理 SCSS 文件并将其转换为静态 CSS 文件,然后将其加载到页面上。所以考虑到这一点,你可以做的是这个。
假设您有一些可以根据电话类型值而改变的 HTML,您可以在 HTML 中对此产生影响。
HTML
<div class="phone-type-1">
12345
</div>
<div class="phone-type-2">
12345
</div>
<div class="phone-type-3">
12345
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.phone-type-1 {
color: red;
}
.phone-type-2 {
color: green;
}
.phone-type-3 {
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
您可以为此 CSS 使用 mixin,但您不需要。以上就足够了,就像你需要的那样。您可以在此处了解有关 Mixins 的更多信息,但它解释了它们的工作原理。
CSS 中的一些东西写起来有点乏味,尤其是 CSS3 和存在的许多供应商前缀。mixin 使您可以创建要在整个站点中重复使用的 CSS 声明组。您甚至可以传入值以使您的 mixin 更加灵活。mixin 的一个很好的用途是供应商前缀。这是边界半径的示例。
作为额外的花絮,mixin 是这样工作的。
@mixin text($colour, $size) {
color: $colour;
font-size: $size;
}
.class {
@include text(yellow, 14px);
}
Run Code Online (Sandbox Code Playgroud)
当然,当编译成CSS文件时,我们得到的只是这个。
.class {
color: yellow;
font-size: 14px;
}
Run Code Online (Sandbox Code Playgroud)