【问题标题】:LESS CSS not translating addition correctly using calc()LESS CSS 没有使用 calc() 正确翻译加法
【发布时间】:2017-02-21 11:30:19
【问题描述】:

我有一个元素,我需要将 10 像素 (10px) 添加到百分比 (100%)。我正在使用内置的 CSS calc() 函数,它应该可以解决问题,但是当与 LESS CSS 结合使用时,它似乎会导致问题。

我有looked at this answer,但它不能解决问题。我找不到任何人都使用加号的场景,所以我无法在任何地方找到答案。唯一的例子是减号,而不是我需要的。

这是我的代码:

.element { width: ~"calc(100% + 10px)"; }

输出为:

.element { width: calc(100%+10px); }

在 Chrome 中...

它不起作用的原因是它需要加号周围的空格。我怎样才能让它工作?似乎没有办法保留这些空间。

【问题讨论】:

  • 你可以尝试转义+符号:width: calc(100% ~"+" 10px);
  • 我试过了,但由于某种原因它也会输出转义字符。
  • 你确定你的 less 被正确处理了吗 - 似乎在这里工作:codepen.io/anon/pen/JEgywW

标签: css less


【解决方案1】:

您可以转义 calc 参数以防止它们在编译时被评估。

使用您的示例,您只需将参数括起来,如下所示:

calc(~'100% + 10px')

更少的代码

div {
   > span {
    width:calc(~'100% + 10px');
    }
 }

CSS 输出

div > span
{
  width: calc(100% + 10px);
}

检查下面给出的元素图像

【讨论】:

  • 我很困惑,您的代码示例使用减号,但您的图像示例使用加号?我试过你的建议,但它不起作用。减号没问题,但加号会删除空格。
  • 我认为这可能是 LESS 中的一个错误。使用上面的确切代码不适用于+,但适用于-。在 + 符号的转义中,它必须做一些额外的事情,以某种方式删除空格。
  • 如果您需要将 Less 数学与转义字符串混合使用:width: calc(~"100% - 15rem +" (10px+5px) ~"+ 2em");。编译为:width: calc(100% - 15rem + 15px + 2em);
  • 呃。看起来我使用的 LESS 编译器已过时,并且其中存在与加号相关的错误。使用通过 NPM 安装的 LESS 似乎可以解决问题。感谢您的帮助,很抱歉浪费您的时间。
  • 没问题..乐于助人.. :)
猜你喜欢
  • 2021-08-08
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
相关资源
最近更新 更多