在CSS中指定0值时,我应该明确标记单位还是省略?

问题描述 投票:37回答:7

这更像是一个“哲学”论点,但我想知道这里的推荐做法。我没有将它设置为Wiki,以防有“官方”答案。

显然,0px和0em之间没有区别,所以可以简单地指定0并且单位是冗余的(参见CSS difference between 0 and 0em)。一些回答这个问题的人认为应该总是省略单位。

但是,在我看来,省略该单元更容易出错,因为稍后的更改可能会意外地省略该单元。它与文档中其他地方的非零元素也不太一致。

css units-of-measurement
7个回答
60
投票

我认为你也应该省略单位。

从程序员的角度来看,0 == null == none == false,只有0px == 0px

这意味着如果你指定0的边框宽度,那么就不会有边框,但是如果你指定一个0px边框,那么将创建一个0 px的边框(这就是它背后的想法,实际上0px给出了完全相同的结果像0)。

Further Points

  • 无单位0使其更容易阅读,因为它很容易与正常的单位价值区分开来。
  • 删除单位是有意义的,因为它们没有任何意义(0可能意味着大小,颜色等)。

结论:将单位省略为0.它们不是必需的并且令人困惑。


14
投票

Css规范说0<unit>可以写成0。而且我已多次读过,建议省略单位,我不记得在哪里。

所以省略它们。

http://www.w3.org/TR/CSS2/syndata.html#length-units


2
投票

我说省略单位,这将有助于压缩CSS并提高性能。它并不多,但每一点点都有帮助。


2
投票

我也喜欢用我的零点放置单位因为......

  1. 正如Istvan所说,IDE喜欢在那里拥有值,以便他们可以正确地增加它们。
  2. 如果我放入另一个值,我不必在以后输入单位。我不必尝试记住如果它为零则移除单位或如果不存在则将其取回。
  3. 一张海报说裸露的零点更具可读性。我发现事实并非如此。当有一个单元时,你有上下文,这使它更具可读性。例如,如果我遇到百分号,我知道我以不同于“px”单位的方式使用它,所以我立即知道它可能是的一些东西。
  4. 另一个人,“红色”,有this说,这看起来很好的信息。这是一个片段...... 但是,如果您打算更改级联中的先前值,您会注意到它。 '0em'表示,'将先前值更改为'0em',但零可以简单地说,'忽略此规则'并保留先前的规则。这可能完全不是你想要的裸体'0'。 original article link

2
投票

在当前的浏览器开发人员工具中,您可以使用向上/向下光标键轻松调整值,但如果您指定0没有单位,那么它将无法工作,因为浏览器不知道您更喜欢哪个单位,并设置12 ......没有单位没有意义。

这就是为什么我现在总是在零值上指定单位。任何CSS缩小器都会在缩小时将其更改为0,因此您甚至不需要关心它。


1
投票

我总是省略,因为它似乎更容易阅读,零弹出并且很容易与周围的单位值区分开来。


1
投票

作为这个问题的一个注释:单位0作为长度在calc()不起作用,你必须改为编写0px

Specification

注意:由于<number-token>始终被解释为<number> s或<integer> s,因此数学函数不支持“unitless 0”<length> s。即宽度:calc(0 + 5px);是无效的,因为它试图将<number>添加到<length>,即使两者都是宽度:0;和宽度:5px;是有效的。

.a, .b { border: 10px solid; height: 30px; }
.a { width: calc(200px + 0px); border-color: #f00; }
.b { width: calc(200px + 0); border-color: #330; }
<div class="a"></div>
<div class="b"></div>

如果单位省略0取自某些css变量,那么事情会更加错误。

© www.soinside.com 2019 - 2024. All rights reserved.