我之前有问过一个类似的问题,并且得到了很好的答案。不幸的是,这一次答案不够充分,而且问题稍微复杂一些。
目前我正在使用LESS和LESSHat混合样式来构建一个主题。我已经定义了许多颜色变量,并且正在尝试使用LESSHat的
上面的一切都很好,我可以使用字符串插值法(即
问题在于
供参考,我尝试了以下方法,但都无效:
目前我正在使用LESS和LESSHat混合样式来构建一个主题。我已经定义了许多颜色变量,并且正在尝试使用LESSHat的
.gradient()
混合样式来定义一个渐变。问题在于,这个混合样式只接受一个字符串作为单个参数,而不是每个渐变参数的一系列参数,例如:#element {
.gradient(~"linear-gradient(90deg, #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%)");
}
上面的一切都很好,我可以使用字符串插值法(即
@{color-var}
)在字符串中使用我的变量。然而,我还想对变量运行一些函数,就像这样:.gradient(~"linear-gradient(top, @{green} 0%, @{green} 50%, darken(@green, 10%) 50%, darken(@green, 10%) 100%)");
问题在于
darken(@green, 10%)
从未被编译,有些浏览器会将这个颜色解释为green
。有人知道如何在上述字符串中包含darken()
函数的返回值,而不需要创建一个单独的变量吗?供参考,我尝试了以下方法,但都无效:
.gradient(~"linear-gradient(top, @{green} 0%, @{green} 50%, "darken(@green, 10%)" 50%, "darken(@green, 10%)" 100%)");
.gradient(~"linear-gradient(top, @{green} 0%, @{green} 50%, {darken(@{green}, 10%)} 50%, {darken(@{green}, 10%)} 100%)");
darken()
函数的返回值”的方法是_不要_这样做(也就是说,我不相信LESS函数目前可以被包含在一个字符串中并且正常工作;没有“函数内插”)。 - ScottS