线性梯度滤波器较少

时间:2013-03-07 20:13:42

标签: css less

我在mixin中遇到问题。

我的文件少了。

.gradient(@startColor, @endColor) {
  background: @startColor;
  background: linear-gradient(to bottom, @startColor 0%,@endColor 100%); 
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@{startColor}', endColorstr='@{endColor}',GradientType=1 );  
}

#nav {
  .gradient(#fff,#e2ebef);
}

.btn {  
  .gradient(#f2f2f2, #e4e4e4);
}

编译后我得到了这个:

#nav {
  background: #ffffff;
  background: linear-gradient(to bottom, #ffffff 0%, #e2ebef 100%);
  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e2ebef', GradientType=1);
}
.btn {
  background: #f2f2f2;
  background: linear-gradient(to bottom, #f2f2f2 0%, #e4e4e4 100%);
  filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e2ebef', GradientType=1);
}

为什么.btn的过滤器中的颜色与#nav中的颜色相同?我用google搜索,但没有找到解决这个问题的任何东西。

那么......除了在生成的css文件中手动粘贴颜色之外还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

将filter属性更改为:

filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr='@{startColor}', endColorstr='@{endColor}', GradientType=1)";

这会自动转义filter属性中的大部分废话,并允许正确输出该字符串中的变量。