我遇到问题:
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;
}
}
我无能为力。为什么它会删除一个背景颜色属性?它是错误还是预期的行为?
答案 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)。