【问题标题】:Less and SCSS calc function [duplicate]Less和SCSS calc函数[重复]
【发布时间】:2018-11-23 12:05:54
【问题描述】:

我通常使用SCSS,因为这是趋势,也是我更喜欢的。我使用Less 来比较两者。我发现在使用 Less 时确实有些奇怪。

当我将 calc 函数与 SCSS 一起使用时,例如 height: calc(100vh - 64px),它将 100vh 转换为 px,然后减去这两个数字并将其转换回 vh 单位,这正是需要的单位.

另一方面,当使用 Less 做同样的事情时,它会立即将减号后面的数字转换为与前面相同的单位,然后减去这个数字,这很奇怪。因为在前一个例子中计算的高度; 使用较少;应该是 36vh,而 calc(100vh - 64vh) 不是这样。

有人知道在使用 Less 时如何解决这个问题吗?

【问题讨论】:

  • Less v3 根本不涉及calc 语句。这是一个浏览器功能,离线编译器根本无法评估,因为在编译时使用的值可能未知。例如。 “SCSS 将 100vh 转换为 px” - SCSS 怎么知道1vh 的像素之前 你甚至将编译后的 CSS 应用到任何页面(即视口的高度基本上是未知的)?如果您使用的是 Less v2 或更低版本,请参阅 stackoverflow.com/questions/11972084/…。
  • @seven-phases-max 我对calc 的追踪让我明白了这一点。如果不是,那它是如何计算的?我想知道我是否错了
  • @seven-phases-max OP 只是对 SCSS 所做的与浏览器所做的区别感到困惑。
  • @seven-phases-max 我正在寻找类似的已回答问题,但找不到。非常感谢您的链接 (Y)。

标签: html css sass less


【解决方案1】:

当我从 SASS 转到 Less 时,我遇到了同样的问题。您需要用引号括住您的calc(),并在其前面加上~。然后它将正确计算。这叫Less Language Escaping。

减:

.test-div {
  width: ~"calc(100vh + 60vh)";
}

【讨论】:

  • 非常感谢。但我还有一个问题,是错误还是这就是 LESS 的使用方式?
  • 这不是错误,这是故意的。它被称为Less Language Escaping。
猜你喜欢
  • 2023-03-30
  • 2016-01-07
  • 2018-06-23
  • 1970-01-01
  • 2014-10-10
  • 2019-01-30
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多