当有两个使用变量时,node.js less删除background属性

时间:2015-06-03 17:29:00

标签: css node.js less

我遇到问题:

false

少用:

@frames_color: #faeacd;
@menu_color_hex: #faeacd;
@menu_color_rgba: rgba(250, 234 ,205 , 255);

结果为css:

.topmenu {
    a {

        background-color: @menu_color_hex;
        background-color: @menu_color_rgba;
    }
}       

#user_field .topmenu a {
  background-color: #faeacd;

}

结果:

.topmenu {
    a {

        background-color: green;
        background-color: @menu_color_hex;
        background-color: red;
        background-color: @menu_color_rgba;
        background-color: blue;
    }

}

我无能为力。为什么它会删除一个背景颜色属性?它是错误还是预期的行为?

2 个答案:

答案 0 :(得分:3)

只是回答为什么它被删除了:

正如上面评论中所述,rgba的字母值应该在0...1范围内,因此255的值会被限制为有效1,从而导致不透明颜色。然后由于@menu_color_hex@menu_color_rgba具有完全相同的颜色值(rgba(250, 234, 205, 1)等于#faeacd),因此不会简单地删除background-color重复。

-

提示: 如果您已经拥有另一个,则无需手动指定透明或后备颜色值,使用相应的Less函数,例如:

@menu_color_safe: fade(@menu_color, 100%); // non-transparent one for old browsers
@menu_color: rgba(250, 234, 205, .5);

或相反:

@menu_color_safe: #faeacd; // non-transparent one for old browsers
@menu_color: fade(@menu_color_safe, 50%);

答案 1 :(得分:1)

@menu_color_rgba: rgba(250, 234 ,205 , 255)中,“255”不是有效的Alpha值(it only ranges from 0–1)。

如果您不需要alpha值,则使用rgb代替浏览器支持更多(例如rgba为not supported in IE8)。