我开始练习sass,我想在课堂上用红色,绿色和蓝色的百分比设置任何颜色。因此,类名color-50-10-60
表示50%的红色,10%的绿色和60%的蓝色,数字只能以10的10为单位变化,因此只能有10、20、30、40之类的数字。 ..最多100,如果我更改具有类名称的数字必须更改颜色,我知道我必须使用mixin来获取它,但是我只是不知道如何实现目标。有帮助吗?
答案 0 :(得分:1)
我认为不可能(技术上可行,但没用)为每种RGB颜色创建特定的类。
我们必须从语言开始。 SASS是一个前置处理器,即发生在所有事物之前:在CSS,HTML,JAVASCRIPT ...之前,他(SASS)从逻辑上不知道您将在HTML中编写什么,而只是想像一下(CSS {{1} }具有潜力,但也有很大的局限性https://caniuse.com/#search=attr() ...)。
如果您编写类似attr()
的内容,则在CSS中必须已经有该类的定义。因此,在创建<div class="color-50-10-60">
之前编写SCSS时,必须想象您将使用该类。
但是,您知道,您可以创建有限的颜色范围(如果您确实需要,可以使用特定的mixin创建10-20种颜色的类)。当然,您无法全部创建它们,因为RGB具有 16,777,216 个可能的颜色值和... 想到创建1600万个类(^ _ ^;)
然后必须首先创建<div>
,然后读取这些值以创建CSS类来管理它们:为此,可以使用javascript。这是您实现目标的方式。 :)
但是,我知道,您需要CSS解决方案。然后...使用<div class="color-50-10-60">
:它是跨浏览器,效果很好! ;)
编辑1
编辑后,这可能是您可能的解决方案:可以处理多种颜色(如我在评论中所述,它可以处理具有3个变量的循环...但是对我来说这很疯狂!:-) ):
<div style="color:rgb(50,10,60);">
我为您创建了一个sassmeister: