0

我使用 SASS 已经有一段时间了,我真正喜欢的一件事是如何将它用于我的 FlashBuilder 项目,即支持自定义 CSS 属性,如“embedAsCFF”和“unicodeRange”。

我是第一次尝试 LESS,它不会让我在使用这两个自定义属性时编译为 CSS:

    embedAsCFF: true;
    unicodeRange: U+0021, U+0023-U+0026, U+0028-U+002a, U+002c, U+002e-U+0039, U+0040-U+005d, U+0061-U+007d;

我收到“更少的编译错误:语法错误...”

任何 LESS 用户都知道我需要如何添加对这些自定义属性的支持?提前致谢。

4

1 回答 1

1

更新:此问题将在 LESS 1.4.2 版本中解决

不是自定义名称,而是格式问题

在我的实验中,问题实际上是您在属性名称中使用大写字母(而不是它们本身是自定义属性)。LESS 显然不支持大写字母。换句话说,这些工作:

embedascff: true;
embed-as-cff: true;
unicoderange: U+0021; //etc.
unicode-range: U+0021; //etc. 

但这不会:

Color: red;

我还没有确定在实际 LESS 代码本身中的哪个位置可以修复(如果它可以针对 LESS 处理属性规则的方式进行修复)。我怀疑原因在于parser.js 文件的第 1578-1584 行(在撰写本文时),它们是:

property: function () {
  var name;

  if (name = $(/^(\*?-?[_a-z0-9-]+)\s*:/)) {
    return name[1];
  }
}

这似乎过滤掉了允许大写字母。我不知道如果更改该正则表达式以允许它们会产生什么后果。

于 2013-06-11T20:24:05.550 回答