【发布时间】:2016-10-02 23:55:50
【问题描述】:
之前我的问题是:-
我的 Sass css 文件中有以下代码
.random {
box-sizing: content-box;
text-align: center;
line-height: 1;
&:before {
display: inline-block;
margin-right: 0.2em;
width: 0;
height: 0;
border-right: 0.4em solid transparent;
border-left: 0.4em solid transparent;
content: "";
vertical-align: baseline;
}
}
.perc-neg:before {
border-top: 0.5em solid #FCB062;
}
.perc-neg.good:before {
border-top: 0.5em solid #98F1AC;
}
我有一个 div class= "随机 perc-neg 好"
现在我想改变上面 div 的样式。怎么办?
我尝试在控制台中关注,但它返回空对象
$("random perc-neg good:before").css("color","red");
$("random.perc-neg.good:before").css("color","red");
$(".random.perc-neg.good:before").css("color","red");
有人建议它可能是重复的,但事实并非如此。
在相关问题中,用户只是想让它可见或隐藏,所以两个类就足够了。
但我的要求是根据用户的选择更改颜色,他可以从多种颜色中进行选择。
每次颜色变化都定义一个类是绝对不可能的。
我们也不能将一些变量传递给 css 以相应地更改颜色属性。
更新问题:
我现在正在使用 Sass。 我已经定义了一个函数来更新颜色
@function em($color) {
@return border-bottom: 0.5em solid $color;
}
.perc-neg.good:before {
em(#98F1AC);
}
当然,我可以从 Sass 文件中调用该函数,但是如何从 javascript 中调用它
现在我想从 javascript 传递颜色的十六进制代码
我需要从 javascript 传递类似的东西
.perc-neg.good:before(#98F1AC)
在谷歌中寻找相同的东西没有找到任何相关的东西 与其将其标记为重复,如果您能提供解决方案会更好
【问题讨论】:
-
你可以通过javascript添加动态CSS到head
-
@VladuIonut 我试过了,但它不起作用我尝试了 append 和 add 函数
-
@Paulie_D 引用的问题如何解决 OP 操纵
color伪元素的问题?据我所知,它仅通过将伪元素放在数据属性上并在伪元素的内容属性中引用它来解决更改伪元素的内容。遗憾的是,CSS 中的 afaikattr()不能用于content以外的其他属性。 -
只需使用您要使用的颜色制作一个类列表,然后使用 javascript 更改元素的类
-
就像我说的那样,用户将被允许从颜色选择器中选择一种颜色。所以几乎不可能为每种颜色定义一个类..希望你明白我的意思
标签: javascript jquery css sass