Less 使用较少CSS创建跨浏览器渐变的问题

Less 使用较少CSS创建跨浏览器渐变的问题,less,Less,这是我的小混音: .gradient (@start, @stop) { background: ~"#@{start}"; background: ~"-moz-linear-gradient(top, #@{start} 0%, #@{stop} 100%)"; background: ~"-webkit-gradient(linear, left top, left bottom, color-stop(0%,#@{start}), color-stop(100%,

这是我的小混音:

.gradient (@start, @stop) {
    background: ~"#@{start}";
    background: ~"-moz-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-webkit-gradient(linear, left top, left bottom, color-stop(0%,#@{start}), color-stop(100%,#@{stop}))";
    background: ~"-webkit-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-o-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-ms-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"linear-gradient(to bottom, #@{start} 0%, #@{stop} 100%)";
    filter: ~"progid:DXImageTransform.Microsoft.gradient( startColorstr='#00@{start}', endColorstr='#00@{stop}', GradientType=0 )";
};
我这样称呼它:

.multi-button {
    .gradient (ffffff, ededed);
}
编译后,我得到了以下结果(这是正确的):

我在调用Mixin时删除了“#”,因为我希望能够将额外的alpha信息添加到MS筛选器中,而不获取以下信息:

#00#ffffff
然而,这并不适用于所有情况,我不知道为什么?上述方法有效,但在另一个梯度中,我得到了不同的结果。这就是我对Mixin的称呼:

.quick-button.blue {
    .gradient (67c2ef, 00a2ed);
}
编译时,我得到以下结果:

.quick-button.blue {
  background: #[object Object],[object Object];
  background: -moz-linear-gradient(top, #[object Object],[object Object] 0%, #[object Object],[object Object] 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#[object Object],[object Object]), color-stop(100%,#[object Object],[object Object]));
  background: -webkit-linear-gradient(top, #[object Object],[object Object] 0%, #[object Object],[object Object] 100%);
  background: -o-linear-gradient(top, #[object Object],[object Object] 0%, #[object Object],[object Object] 100%);
  background: -ms-linear-gradient(top, #[object Object],[object Object] 0%, #[object Object],[object Object] 100%);
  background: linear-gradient(to bottom, #[object Object],[object Object] 0%, #[object Object],[object Object] 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00[object Object],[object Object]', endColorstr='#00[object Object],[object Object]', GradientType=0 );
}

我正在使用Codekit1.3.5进行编译。我没有收到任何编译错误,但显然有问题。

更新-问题已解决

这是我的混音:

.gradient (@start, @stop) {
    background: ~"#@{start}";
    background: ~"-moz-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-webkit-gradient(linear, left top, left bottom, color-stop(0%,#@{start}), color-stop(100%,#@{stop}))";
    background: ~"-webkit-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-o-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"-ms-linear-gradient(top, #@{start} 0%, #@{stop} 100%)";
    background: ~"linear-gradient(to bottom, #@{start} 0%, #@{stop} 100%)";
    filter: ~"progid:DXImageTransform.Microsoft.gradient( startColorstr='#00@{start}', endColorstr='#00@{stop}', GradientType=0 )";
};
我这样称呼它:

.gradient ('eeeeee', 'f9f9f9');

关键是将十六进制值用单引号括起来。我不能100%确定为什么它有时解析正确,而其他的则不能,但这解决了问题。

请将您的修复作为答案发布,并将其标记为已接受。谢谢。我发布了我的答案,但我必须等两天才能让它成为一个可接受的答案。谢谢虽然这是一个解决方案,但如果您使用的是推特引导和更少的推特,这就有些无关紧要了。我是在创建了上面的解决方案之后才发现这一点的。
.gradient ('eeeeee', 'f9f9f9');