iT邦幫忙

1

css margin 0 auto ; 為什麼0沒有單位

css

css margin 0 auto ; 為什麼0沒有單位,不是0px 什麼時可以不用單位px,em,rem.謝謝回答!

看更多先前的討論...收起先前的討論...
ckp6250 iT邦新手 1 級 ‧ 2020-05-22 15:59:42 檢舉
就邏輯上來講,0加上單位沒有意義,
1公分和1公里,天差地別;
但,
0公分和0公里,意思是一樣,

所以,0不需要單位!
(我是來亂的。)
ch_lute iT邦新手 5 級 ‧ 2020-05-22 16:01:16 檢舉
樓上說的其實沒錯啊,量跟單位其實是乘法關係
咖冰拉 iT邦新手 1 級 ‧ 2020-05-22 16:02:37 檢舉
你也可以用 0px 0pc 0vw 0vh 0em 0rem
https://developer.mozilla.org/zh-CN/docs/Web/CSS/length
安逸安逸
froce iT邦大師 2 級 ‧ 2020-05-22 16:38:09 檢舉
0後面不管接啥單位都是0啊,沒必要是正常的。

2 個回答

2
通靈亡
iT邦新手 3 級 ‧ 2020-05-22 16:00:45
最佳解答

根據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

ppp896 iT邦新手 5 級 ‧ 2020-05-22 22:29:02 檢舉

感謝大家回答,謝謝,很有幫助!!!感恩

0
浩瀚星空
iT邦大師 1 級 ‧ 2020-05-23 12:00:13

沒指明單位,不代表他沒單位。
只是在沒指明單純的情況下。css會依預設單位為主。

一般css關係到容量的設定值。大多都是不需要指明單位的。
因為會用px為預設單位。

所以問題在於,並非是0不需要指定單位。
而是原本任何數字都不需要指定單位。
因為不指定會用預設單位來解釋。

當然,依照用的地方不同,也會有不一樣的預設單位值。
其也區分了相對值及絕對值的應用。

不要被新手誤導了問題的本質。本質的觀念很重要的。
被新手誤導很不好。

通靈亡 iT邦新手 3 級 ‧ 2020-05-23 12:19:27 檢舉

你說的應該是發生在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.

https://www.quirksmode.org/css/quirksmode.html

你說到重點了。
也就是我上面說的預設單元。到底是誰來判斷及判定的。
大多數不用說,一定都是瀏覽器自主判定。
而一般的預設單元幾乎是px。

你剛好也說到所謂的標準。與實際上的標準。
我記得以前ff瀏覽器好像當時在css上就要求了標準模式。
記得早期的edeg也預設為標準模式。

導至排板跑掉的問題很多。
也就是非數值式需指定單位。用另外一句話來說,就是沒有所謂的預設單位的解讀方式。所以採用了「忽略」的作法而非「替代」的作法。

總之,0值這個問題,不止在css上。在很多語言裏。
確實都有存在一些特別解釋處理的方法。
所以也不能說我講的是對的。
大家討論參考吧。

我要發表回答

立即登入回答