CSSで0の値を指定する場合は、明示的に単位をマークするか省略する必要がありますか?

これはもっと "哲学"の議論ですが、私はここで推奨される練習が何であるか知りたいと思います。私はWikiとしてそれを設定していないのですが、「公式の」答えがある場合に備えます。

明らかに、0pxと0emの間に違いはありません。したがって、単に0を指定でき、ユニットは冗長です( 0と0emの間のCSSの違い)。その質問に答えた人々の中には、ユニットをいつも省略しなければならないと主張している人がいました。

しかし、後で変更するとユニットが誤って省略される可能性があるため、ユニットを省略するとエラーが発生しやすくなります。また、文書内の他の部分で非ゼロ要素との一貫性が低くなります。

36
私は一般的に単位を省略して、ここで2,3バイトを節約します。
追加された 著者 Vic,

6 答え

私は単位を省略しなければならないと主張します。

プログラマの観点からは、 0 == null == none == false です。ここで 0px == 0px のみです。

つまり、境界線の幅を 0 と指定すると境界線はありませんが、 0px 境界線を指定すると0 pxの境界線が作成されます実際には 0px0 のような同じ結果を返します。

さらなるポイント

  • ユニットのない 0 は、通常の単位の値と容易に区別できるため、読みやすくします。
  • ユニットが存在しないのでユニットを削除するのが理にかかります(0はサイズ、色などを意味する可能性があります)。

Conclusion: Omit the units in 0. They're not needed and confusing.

57
追加された
私は公式のガイドラインを参考にしたいと思っていましたが、CSSの仕様はこのオプションを残しているようです。この答えは、私が完全に同意しているかどうかわからないけれども、最も精巧で、理にかなっているようです。
追加された 著者 Uri,
+1私はしばしば不思議に思っています。答えは完璧です。 " 0pxのボーダーを指定すると、0pxのボーダーが作成され"私のためにクリンチされます。
追加された 著者 Dan Lugg,
また、 0px と入力してCSS値を 0 と入力すると、IDEによって警告が表示されます。 PHPStormは確かに一つです。その行動だけでこの答えが裏付けられます。 +1
追加された 著者 AlienWebguy,

Css specifications says that 0 can be written 0. And I've read many times that it is suggested to omit the unit, I can't remember where.

だから、それらを省略してください。

See http://www.w3.org/TR/CSS2/syndata.html#length-units

13
追加された
私は 'can'を見るが、 'should'の部分が見えなかった: "長さの値のフォーマット(この仕様でで示される)は(小数点付きまたはなし)ですその後にユニット識別子(例えば、px、emなど)が続きます。ゼロ長の後、ユニット識別子はオプションです。
追加された 著者 Uri,
投稿されたリンクは私があなたの質問について見つけた最初の参考文献ですが、何度も読んだことがありますが、ユニットを省略することが示唆されています。
追加された 著者 ʞᴉɯ,

現在のブラウザのデベロッパーツールでは、上下のカーソルキーを使用して値を簡単に微調整することができますが、ユニットなしで 0 を指定すると、ブラウザーはどのユニット単位を指定しないで 12 ...を設定することは意味がありません。

だから私はいつもゼロ値でもユニットを指定しています。どんなCSSミニファイアーでも、それを気にする必要がないように、ミニコード化で 0 に変更されます。

2
追加された
これは間違いですが、クロムとFirefoxの場合、ユニットがなければ矢印キーで移動を開始すると「px」が追加されます
追加された 著者 Brian Leishman,
ええ、それ以来修正されているようです。
追加された 著者 István Ujj-Mészá,

私は単位を省略すると言うが、これはCSSを圧縮してパフォーマンスを向上させるときに役立つだろう。それほど大したことではありませんが、少しずつ役立ちます。

2
追加された

私はまた、私のゼロでユニットを置くのが好きなので...

  1. IDEs like to have the values there so they can increment them properly, as Istvan mentioned.
  2. I don't have to type the unit later if I put another value in. And I don't have to try and remember to remove the unit if it's zero or put it back if it's not.
  3. One poster said the naked zero was more readable. I find that it's not. When there is a unit, you have context, and that makes it more readable. For example, if I come across a percent sign, I know I use that in different ways than the "px" unit, so I instantly know some of the things it could be.
  4. Another guy, "red", had this to say, which looks like good info. Here's a snippet...

    However, you will notice it if you intended to change a prior value in the cascade. a '0em' says, 'change the prior value to '0em', but a zero may simply say, 'disregard this rule' and leave the prior rule in effect. This may not be at all what you intended with your naked '0'. original article link

2
追加された
私はポイント4の引用テキストが間違っていると思います。私の経験では、何かを「裸の0」に設定すると、実際にはゼロに設定されます。前のルールは使用しません。たぶんこれはフォントの場合ではありませんが、フォントサイズをゼロに設定する必要はありません。
追加された 著者 OMA,
さらに、テキストのフォントサイズをゼロに設定することは、実際のユーザーではなく、検索エンジンに対してのみキーワードライドされたコンテンツを追加する方法であるため、検索エンジンによって「罰せられる」ことさえあります。
追加された 著者 OMA,

私はいつも読みやすいように省略しています。ゼロは飛び出し、その周りのユニット値と簡単に区別できます。

1
追加された