CSS minificator删除零值的单位(px,ms,em)

时间:2016-02-29 12:44:55

标签: css minify

在combres文件中,我使用 defaultCssMinifierRef =“msajax”

此缩小器删除所有零值的单位(px,em,ms)。 但0ms与0不同。 那么,如果我需要在缩小后保存单位,我该怎么办?

2 个答案:

答案 0 :(得分:5)

只有长度为零时,才能省略单位标识符。即使值为零,其他单位也需要单位标识符。长度包括empx等。关于是否更好地包含它,存在一些争论(请参阅this questionthis one)。缩小器将删除长度为零的单元标识符。请参阅规范here

  

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

非长度需要单位标识符,无论是否为零。如果minifier删除非长度的单位标识符,例如在作为属性ms的值给出的时间内transition-duration,则它是minifier中的错误。

答案 1 :(得分:1)

您不需要用一个单位保存0个值。

在CSS中使用不带单位的0意味着与单位0相同。 您可以使用top: 20px,它会将元素从顶部放置20px,具体取决于其位置。

如果您使用top: 0,则会被浏览器翻译为top: 0px,因此您根本不必担心这一点。

您的编译器只会删除0px0em等值的单位,因为它们是多余的,可以简单地用作0

如果要从top: 20px中删除该值,这会导致问题,因为呈现引擎不知道它是top: 20rem还是top: 20px比较时有很大的不同。

从单位的0值中剥离单位实际上有点优势,因为必须通过网络发送较少的字节,这只是非常小的,但由于它是一个自动过程,所以它并不是真的作为开发人员花费你的任何成本(因为你要考虑到你手动必须从他们的单位剥离0值)。

但是,@torazaburo在评论中指出了例外情况。 CSS中的时间,例如100ms0.1s需要一个单位,但@torazaburo指出,缩小器也会通过缩短100ms0.1s之类的内容来自动处理,以节省字节数。

相关问题