0和0em之间的CSS差异

时间:2009-06-01 14:38:39

标签: css

之间有什么区别吗?
margin: 0;

margin: 0em;

我没有注意到任何事情,但我的老师一直告诉我这不一样。

13 个答案:

答案 0 :(得分:37)

当值为0时没有区别。如果它是1和1em,是的,那就是差异,但0是0,无论单位是什么。

答案 1 :(得分:14)

使用0em文件更大。


向你的教授证明没有区别的方法是将某些内容设置为0,将其他内容设置为0em,并使用Firebug或类似工具检查DOM。如果我没记错的话,你会发现两者现在都是0.所以唯一的区别在于源头。 (但是自从我检查以来已经有一段时间了。我可能会考虑从jQuery中获取和设置样式。所以在你接受我的话之前先检查一下。)

答案 2 :(得分:8)

这就像说0香蕉和0苹果不一样。所以在某种程度上,他是正确的,但零是零,所以无论哪种方式,你最终都会感到饥饿!

答案 3 :(得分:6)

CSS3 spec说:

  

对于零长度,单位标识符是可选的

因此,即使Googles指南,WordPress指南,Microsoft WebMatrix以及可能的许多其他人都说你应该在使用零时省略该单元,但它实际上是允许的。所以这是个人偏好或者你自己的编码指南。

答案 4 :(得分:5)

我想知道老师是否试图突出显示,而不是0和0em不是相同的值,但也许,CSS中的默认单位可能不是em(我相信规范要求非零值具有单位附加但经常假设px)。

在具体的例子中,他们显然是平等的。

答案 5 :(得分:3)

零为零是零。无论单位是否不同。以像素为单位的派生值始终相同:零。

答案 6 :(得分:3)

你的老师看来是个白痴。

但也许外表具有欺骗性:你应该问你的老师他们的意思。

我不得不问,为什么你不问老师他们第一次说的时候是什么意思?零是零,无论单位是什么。

答案 7 :(得分:3)

在有或没有相关尺寸单位(em,px等)的'0'之间肯定存在差异。

虽然CSS在大多数情况下将“0”解释为没有单位大小作为该属性的默认零单位,但情况并非总是如此(例如,字体大小),并且一些验证器会反对属性当遇到没有包含该单元的参数时,需要在其规格中使用单位尺寸。

不同之处在于,没有单位指定的'0'可能被解释为需要单位大小的属性中的表达式错误。您可能没有注意到差异,因为表达式将被简单地视为“错误的语法”,并且解释器将跳过它;因为它通常与CSS中的任何错误语法一起使用。因此,如果您将“0”指定为单位大小且默认值为“0em”或“0%”等,则该属性的结果将保持为“0”。但是,如果您打算更改级联中的先前值,您会注意到它。 '0em'表示,'将先前值更改为'0em',但零可以简单地说,'忽略此规则'并保留先前的规则。这可能完全不是你想要的裸体'0'。

这是一个客户端进程,您无法控制特定浏览器现在或将来如何处理“0”和默认解释。

因此,除了告诉任何人读取你的代码时你肯定想要一个'0'大小的元素,以及适当的单位类型,它实际上可能会影响结果。最好始终将单位标识与零一起使用。如果你真的很挑剔(像我一样)或设计vls系统和代码(就像我一样),你也可能希望将前导零(0.xx ...)放在任何小于0的值中。这允许以后读者要知道你的分数是故意的而不仅仅是一个错字。

对于那些抱怨'额外打字'的人 - 我建议你去打字课。在面试设计师或编码员时,我做的第一件事就是给他们打字测试。没有什么能像一个好的打字员那样省钱并减少错误!

答案 8 :(得分:1)

你的老师很顽固,因为他或她不愿意承认自己错了。 'whatever:0'将所有可能的单位(继承或其他单位)设置为零。 0绝对是零。

答案 9 :(得分:1)

这已经被打死了但是这里......让我们看看#34;大狗"说出来。

Google CSS Guidelines ...

  

除非需要,否则不要在0值之后使用单位

WordPress CSS样式指南同样说......

  除非必要,否则

0值不应具有单位,例如   过渡持续时间。

答案 10 :(得分:0)

0和0em是相同的,但x和xem的0以外的任何值都不相同。

答案 11 :(得分:-1)

谷歌自己的Chrome浏览器位于' Computed'样式包括零值的单位,与我个人的偏好一致,只包括它。

Include Units With Zero Values

答案 12 :(得分:-1)

00em之间存在 IS

它与transition属性有关,但我相信这取决于正在更改的属性。例如,我认为应该没有差异,但是至少在line-height的情况下,当值从其他值更改为0时,将不会播放动画,但是当动画变为0em可以正常工作。

这可能是一个错误,但是我在Firefox和Chromium中都遇到了相同的行为。

亲自检查一下:https://codepen.io/anon/pen/GPoopW?editors=1100