如何以更少的CSS传递mixin参数?

如何以更少的CSS传递mixin参数?,css,less,Css,Less,这是我的混音: .gradient (...) { background-image: -webkit-linear-gradient(@arguments); background-image: -moz-linear-gradient(@arguments); background-image: -ms-linear-gradient(@arguments); background-image: -o-linear-gradient(@arguments);

这是我的混音:

.gradient (...) {
    background-image: -webkit-linear-gradient(@arguments);
    background-image: -moz-linear-gradient(@arguments);
    background-image: -ms-linear-gradient(@arguments);
    background-image: -o-linear-gradient(@arguments);
    background-image: linear-gradient(@arguments);
}
我试着这样使用它:

.gradient(top, #333333 0%, #282828 100%);
background-image: linear-gradient(top #333333 0% #272727 100%);
问题是LESS去掉了所有逗号,因此输出如下:

.gradient(top, #333333 0%, #282828 100%);
background-image: linear-gradient(top #333333 0% #272727 100%);

有没有可能从字面上传递更少的论点?或者,我应该如何解决这个问题?

要获得您想要的内容,我认为您必须使用以下语法之一将
@参数作为文本字符串传递:

  • ~“顶部,#333333 0%,#282828 100%”

  • e(“top,#333333 0%,#282828 100%”

  • 语法
    ~“value”
    e(“value”)
    几乎是等价的

    然后你应该像这样调用你的
    .gradient(@arguments)
    mixin:

    .gradient(top, #333333 0%, #282828 100%);
    
    background-image: linear-gradient(top #333333 0% #272727 100%);
    
    .gradient(e(“顶部,#333333 0%,#282828 100%”)


    这很有帮助,但是有人知道如何在多行中打断这些文字字符串以提高可读性吗?当我尝试时,它会生成一个解析错误。嗨@michael,你可以将文本分成更小的块,然后写在多行上。如果您有类似于
    filter:~“alpha(不透明度=@{opacity})”你可以这样写:
    过滤器:~“alpha”~(“~”不透明度“~”=“~”@{opacity}“~”)