0

我正在尝试在 LESS 中执行此操作(使用 JS 版本):-

.gradient-horizontal (@from, @to, @fallback)
{    
    background: -webkit-gradient(linear, left top, right top, from(@from), to(@to)); /* for webkit browsers */
    background: -moz-linear-gradient(left,  @from,  @to); /* for firefox 3.6+ */

    filter:      progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='@from', endColorstr='@to'); /* IE6 & IE7 */
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='@from', endColorstr='@to')"; /* IE8 */
}

它似乎适用于 Firefox 和 Chrome,如果我将 IE 行中的 @from 和 @to 替换为文字颜色,它可以工作,但正如您在上面看到的那样,@from 和 @to 似乎未经修改地通过当被单引号包围时。但是,没有它们,IE 代码将无法工作。

有没有解决的办法?

4

1 回答 1

3

这似乎有效: -

.gradient-horizontal (@from, @to, @fallback)
{   

    background: @fallback; /* for non-css3 browsers */
    background: -webkit-gradient(linear, left top, right top, from(@from), to(@to)); /* for webkit browsers */
    background: -moz-linear-gradient(left,  @from,  @to); /* for firefox 3.6+ */

    filter:  ~"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='@{from}', endColorstr='@{to}')"; /* IE6 & IE7 */
    -ms-filter: ~"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='@{from}', endColorstr='@{to}')"; /* IE8 */
}
于 2012-10-04T17:57:42.330 回答