根據w3c官方css的規格定義,單位在0之後是非必要
CSS2:
https://www.w3.org/TR/CSS2/syndata.html#length-units
The format of a length value (denoted by in this specification) is a (with or without a decimal point) immediately followed by a unit identifier (e.g., px, em, etc.). After a zero length, the unit identifier is optional.
CSS3:
https://www.w3.org/TR/css-values-3/#lengths
For zero lengths the unit identifier is optional
沒指明單位,不代表他沒單位。
只是在沒指明單純的情況下。css會依預設單位為主。
一般css關係到容量的設定值。大多都是不需要指明單位的。
因為會用px為預設單位。
所以問題在於,並非是0不需要指定單位。
而是原本任何數字都不需要指定單位。
因為不指定會用預設單位來解釋。
當然,依照用的地方不同,也會有不一樣的預設單位值。
其也區分了相對值及絕對值的應用。
不要被新手誤導了問題的本質。本質的觀念很重要的。
被新手誤導很不好。
你說的應該是發生在Quirks mode底下
在標準上是規定非0值要有單位
Standard: CSS requires most values to have a unit. If such a value doesn’t have a unit it’s ignored.
However, in quirks mode all browsers automatically append the unit px to unitless values.
你說到重點了。
也就是我上面說的預設單元。到底是誰來判斷及判定的。
大多數不用說,一定都是瀏覽器自主判定。
而一般的預設單元幾乎是px。
你剛好也說到所謂的標準。與實際上的標準。
我記得以前ff瀏覽器好像當時在css上就要求了標準模式。
記得早期的edeg也預設為標準模式。
導至排板跑掉的問題很多。
也就是非數值式需指定單位。用另外一句話來說,就是沒有所謂的預設單位的解讀方式。所以採用了「忽略」的作法而非「替代」的作法。
總之,0值這個問題,不止在css上。在很多語言裏。
確實都有存在一些特別解釋處理的方法。
所以也不能說我講的是對的。
大家討論參考吧。