我第一次使用for i := 0; i < n; i++ {
A[i] = true
}
功能并认为它有问题。
在this page上,我找到以下解释:
contrast
我有这两种颜色:
contrast(@color1, @darkcolor, @lightcolor);
// outputs @darkcolor, when @color1 have more than 43% Luma
// if not it outputs @lightcolor
第一种颜色有60 Luma,第二种颜色有65 Luma。我希望Less为这两种颜色提供@gBlue: #2196F3;
@gLightBlue: #03A9F4;
。但那不是我得到的结果!
Lessphp会返回@lightcolor
的{{1}}和@darkcolor
的{{1}}。
谁能告诉我为什么这样做?这是一个错误吗?为什么我不能在这两种情况下获得@gBlue
?
答案 0 :(得分:1)
注意: v0.5.0的源代码显示,lessphp现在也在检查亮度值而不是亮度(在v0.4.0中使用),因此升级到最新版本也应解决问题
这似乎不是一个错误,而是contrast
函数在Less.js,Less.PHP和lessphp(高达v0.4.0 )中的工作方式的差异)。
在 Less.js和Less.PHP 中,对比度函数根据参考颜色的luma
值决定输出颜色。所讨论的2种颜色的luma
值小于43%,因此它们输出@lightcolor
。
您可以在Less2CSS.org(Online Less.js编译器)和Online Less.PHP compiler检查以下代码的输出。
#sample{
color:contrast(@color1, @darkcolor, @lightcolor);
luma-color1: luma(@color1);
luma-color2: luma(@color2);
}
@color1: #2196F3;
@color2: #03A9F4;
@darkcolor: black;
@lightcolor: white;
然而,lessphp documentation描述了contrast
功能如下:(看起来 doc未更新,v0.5.0更改)
contrast(color, dark, light)
- 如果颜色的亮度值大于50%,则返回黑暗,否则返回光。
第一种颜色的lightness
值为54%,而第二种颜色的@darkcolor
值为48%。因此, lessphp 在第一种颜色用作参考时输出@lightcolor
,在第二种颜色用作参考时输出#sample{
color:contrast(@color2, @darkcolor, @lightcolor);
lightness-color1: lightness(@color1);
lightness-color2: lightness(@color2);
}
@color1: #2196F3;
@color2: #03A9F4;
@darkcolor: black;
@lightcolor: white;
。
您可以在Online lessphp compiler for v0.4.0尝试以下代码,看看我的意思:
contrast
很可能 lessphp 在官方Less(JS版)编译器实现相同功能之前,首先根据lightness
值引入了luma
函数但是基于lightness
而不是Category
值。以下声明可在Less documentation:
此功能与contrast function in Compass for SASS的工作方式相同。根据{{3}},使用伽马校正的亮度值比较颜色,而不是它们的亮度。