为什么LESS将#fff转换为白色?

Cur*_*urt 8 css less dotless

如果我有:

.foo
{
   background-color:#fff;
}
Run Code Online (Sandbox Code Playgroud)

LESS将此转换为:

.foo
{
    background-color:white;
}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?浏览器是否比HEX值更快地处理命名颜色?

我正在使用无点实现LESS .这可以进行转换吗?如果是这样,为什么?

Har*_*rry 3

less.js 和 dotless 之间的区别

色彩压缩

在 dotless 中,如果匹配的话,我们更喜欢 color 关键字而不是十六进制代码。压缩时,它选择较短的一个。例如#FFF、#FFFFFF、白色则选择#FFF,但在红色的情况下,将使用关键字红色。

在 less.js 中,每种颜色都替换为十六进制代码。

以上引用来自Dotless GitHub 官方页面

笔记:

  1. 该引用的第二部分听起来与第一部分有点矛盾,但我认为第一个声明对于预期行为已经足够清楚了。
  2. 正如seven-phases-max他的评论中指出的那样,他们计划解决这个问题,并且根据问题 #332 的日志,DisableColorCompression已经添加了该标志来禁用此压缩。
  3. color 关键字到十六进制代码的映射似乎保留在Color.cs源文件中。
  4. Issue 317Issue 168是另外两个类似的问题,仍处于开放状态,因此我不确定该DisableColorCompression标志是否完全解决了十六进制代码到颜色名称转换项的问题。