CSS minificator 删除零值的单位(px、ms、em)
CSS minificator removes units for zero values (px, ms, em)
在 combres 文件中,我使用 defaultCssMinifierRef="msajax".
此缩小器删除了所有零值的单位(px、em、ms)。
但 0ms 与 0s 不同。
那么,缩小后需要保存单位怎么办?
您永远不需要用单位保存 0 个值。
在 CSS 中使用不带单位的 0 与使用带单位的 0 相同。
您可以使用 top: 20px
,它会将元素放置在距离顶部 20px 的位置,具体取决于它的位置。
如果您使用 top: 0
,浏览器会将其转换为 top: 0px
,因此您根本不必担心。
您的编译器只会从 0px
、0em
等值中去除单位,因为它们是多余的,可以简单地用作 0
。
例如,如果要剥离 top: 20px
的值,这会导致问题,因为渲染引擎不知道它是 top: 20rem
还是 top: 20px
比较起来明显不同。
用单位从 0 值中剥离单位实际上有一点优势,因为必须通过网络发送的字节更少,这只是非常小的,但由于它是一个自动过程,它不会真正花费你任何东西,因为开发人员(考虑到您必须手动从其单位中删除带有单位的 0 值)。
但是也有例外,正如 @torazaburo pointed out in the comments. Times in CSS e.g. 100ms
, 0.1s
require a unit but as @torazaburo 指出的那样,这也会由缩小器自动处理,将 100ms
缩短为 0.1s
以节省字节。
仅当 lengths 为零时,才能省略单位标识符。其他单位甚至对于零值也需要单位标识符。长度包括 em
、px
等。对于包含它是否更好存在一些争论(参见 this question and this one). A minifier will and should remove the unit identifier on lengths of zero. See the spec here:
for zero lengths the unit identifier is optional
非长度需要单位标识符,无论是否为零。如果一个 minifier 去掉了一个非长度的单位标识符,比如 ms
在作为 属性 transition-duration
的值给定的时候,它是 minifier 中的一个错误。
在 combres 文件中,我使用 defaultCssMinifierRef="msajax".
此缩小器删除了所有零值的单位(px、em、ms)。 但 0ms 与 0s 不同。 那么,缩小后需要保存单位怎么办?
您永远不需要用单位保存 0 个值。
在 CSS 中使用不带单位的 0 与使用带单位的 0 相同。
您可以使用 top: 20px
,它会将元素放置在距离顶部 20px 的位置,具体取决于它的位置。
如果您使用 top: 0
,浏览器会将其转换为 top: 0px
,因此您根本不必担心。
您的编译器只会从 0px
、0em
等值中去除单位,因为它们是多余的,可以简单地用作 0
。
例如,如果要剥离 top: 20px
的值,这会导致问题,因为渲染引擎不知道它是 top: 20rem
还是 top: 20px
比较起来明显不同。
用单位从 0 值中剥离单位实际上有一点优势,因为必须通过网络发送的字节更少,这只是非常小的,但由于它是一个自动过程,它不会真正花费你任何东西,因为开发人员(考虑到您必须手动从其单位中删除带有单位的 0 值)。
但是也有例外,正如 @torazaburo pointed out in the comments. Times in CSS e.g. 100ms
, 0.1s
require a unit but as @torazaburo 指出的那样,这也会由缩小器自动处理,将 100ms
缩短为 0.1s
以节省字节。
仅当 lengths 为零时,才能省略单位标识符。其他单位甚至对于零值也需要单位标识符。长度包括 em
、px
等。对于包含它是否更好存在一些争论(参见 this question and this one). A minifier will and should remove the unit identifier on lengths of zero. See the spec here:
for zero lengths the unit identifier is optional
非长度需要单位标识符,无论是否为零。如果一个 minifier 去掉了一个非长度的单位标识符,比如 ms
在作为 属性 transition-duration
的值给定的时候,它是 minifier 中的一个错误。