【发布时间】:2016-03-28 22:50:54
【问题描述】:
最近我开始在 CSS 中使用 calc(...) 方法。我很快了解到,width: calc(100%-2) 之类的代码将不起作用,尽管在 - 运算符前后添加空格可以解决问题,并且 calc 方法将正常运行。
在做了一些研究后,我发现多篇博客文章都提到了空格是必需的,许多人甚至指出了规范 (CSS3 8.1.1),其中指出:
另外,+和-两边都需要空格 运营商。 (* 和 / 操作符可以不带空格使用 在他们周围。)
现在,很明显,规范告诉我们这些运算符必须用空格包裹,但为什么呢?我已在规范中进一步阅读(通过第 8.1.2-4 节),如果在这些附加部分中进行了解释,我不理解其中的原因。
简单来说,有人可以解释为什么指定calc(100% - 1) 甚至calc(100%/2) 是可接受的语法但不是calc(100%-1)?
【问题讨论】:
-
我认为是这样,您可以在计算中使用负数。
-
@Festive 我不明白你为什么需要负数?
-
@FestiveTurnip 这不是一个好的假设。几乎不需要空格来区分二进制
-和一元-。你不会说没有其他语言要求你写3 - 2而不是3-2。 -
事实上,CSS 不需要在二元运算符周围使用空格,而是简单地禁止符号和数字之间的空格。这在任何地方都是如此,包括
calc()、:nth-child(An+B)和像-2em这样的简单长度值。