CSS'de bir 0 değeri belirlerken, birimleri açıkça işaretlemeli veya atmamalı mıyım?

Bu daha çok bir 'felsefe' ​​argümanıdır, ama burada neyin tavsiye edildiğini bilmek isterim. 'Resmi' bir cevap olması durumunda henüz bir Wiki olarak kurmuyorum.

Açıkçası, 0px ile 0em arasında herhangi bir fark yoktur, ya da her neyse, o zaman bir tane 0 belirtilebilir ve birimler gereksizdir (bakınız 0 ile 0em arasındaki CSS farkı . Bu soruyu cevaplayan milletlerden bazıları, birimin her zaman üniteyi çıkarması gerektiğini ileri sürdü.

Ancak, daha sonra bir ünite yanlışlıkla üniteyi atlayabileceğinden, üniteyi atlamanın daha fazla hataya eğilimli olduğunu düşünüyorum. Ayrıca belgenin diğer kısımlarında sıfır olmayan elemanlarla daha az tutarlıdır.

36
Genelde burada birkaç baytlık tasarruf etmek için birimleri çıkardım.
katma yazar Vic, kaynak

6 cevap

Ben de birimleri çıkarmamalısın.

Bir programcının bakış açısından, 0 == null == none == false , burada sadece 0px == 0px .

Yani, 0 kenarlık genişliği belirtirseniz, o zaman kenarlık olmaz, ancak 0px kenarlığı belirtirseniz, 0 px'lik bir kenarlık oluşturulur ( arkasındaki fikir budur, gerçekte 0px 0 gibi aynı sonucu verir.

Daha Fazla Puan

  • birimsiz 0 , normal birim değerlerden kolayca ayırt edilebildiğinden okumayı kolaylaştırır.
  • Ünitelerin, orada bulunmanın hiçbir anlamı olmadığı için çıkarılması mantıklıdır (0, boyut, renk vb. anlamına gelebilir).

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

57
katma
Resmi bir yöneltmeyi bir şekilde veya başka bir şekilde umuyordum, CSS özellikleri bunu isteğe bağlı olarak bırakıyor gibi görünüyor. Bu cevap en ayrıntılı ve mantıklı görünüyor, ancak tamamen katılıyorum emin değilim.
katma yazar Uri, kaynak
+1 Sıklıkla merak ettim ve cevabınız mükemmel bir anlam ifade ediyor; " 0px kenarlık belirtirseniz, 0 px'lik bir kenarlık oluşturulur " benim için onu perçinledi.
katma yazar Dan Lugg, kaynak
CSS değerleri için 0px yazıp 0 önerdiğinizde bazı IDE'lerin sizi uyaracağı da not edilebilir. PHPStorm kesinlikle birdir. Bu davranış sadece bu cevabı desteklemektedir. +1
katma yazar AlienWebguy, kaynak

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.

Onları ihmal et.

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

13
katma
'Can'ı görüyorum, ama' yapmalı 'bölümünü görmedim: "Bir uzunluk değerinin biçimi (bu spesifikasyonda ile gösterilir) hemen bir (ondalık işareti olsun veya olmasın) bir ünite tanımlayıcısı (örneğin, px, em, vb.) takip edilir. Sıfır uzunluktan sonra, birim tanımlayıcı isteğe bağlıdır. "
katma yazar Uri, kaynak
Gönderilen bağlantı, sorgunuzla ilgili olarak bulduğum ilk referanstır, ancak bir çok kez okumamın üniteyi çıkarması önerildiğini, nerede olduğunu hatırlayamıyorum.
katma yazar ʞᴉɯ, kaynak

Geçerli tarayıcılar geliştirici araçlarında, değerleri yukarı/aşağı imleç tuşları ile canlı olarak ayarlayabilir, ancak bir birim olmadan 0 'ı belirtirseniz, tarayıcı, hangi birimi bilmeyeceğinden çalışmayacaktır. tercih edersiniz ve 1 , 2 ... ayarını yaparsanız, ünitenin bir anlamı yoktur.

İşte bu yüzden, her zaman üniteyi bugün de sıfır değerler olarak belirtiyorum. Herhangi bir CSS minifier, minification üzerindeki 0 olarak değiştirir;

2
katma
Bu yanlış, Chrome ve Firefox için herhangi bir birim yoksa, ok tuşları ile hareket etmeye başladığınızda her ikisinin de "px" ekleyeceğini söyleyebilirim.
katma yazar Brian Leishman, kaynak
Evet, o zamandan beri sabit görünüyor.
katma yazar István Ujj-Mészá, kaynak

Üniteyi çıkar dedim, bu CSS'yi sıkıştırdığınızda ve performansı artırdığınızda yardımcı olacaktır. Fazla değil, ama her yardımcı olur.

2
katma

Aynı zamanda birimleri sıfırlarıma da ekledim çünkü ...

  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
katma
4. noktadaki alıntı metninin yanlış olduğunu düşünüyorum. Deneyimlerime göre "çıplak 0" a bir şey ayarlarsanız, gerçekten sıfıra ayarlanır. Önceki kuralı kullanmayacak. Belki yazı tipleri için böyle bir durum söz konusu değildir, ancak yazı tipi boyutunu sıfır olarak ayarlamanın hiç bir zaman gerekmediğini düşünüyorum.
katma yazar OMA, kaynak
Ayrıca, herhangi bir metin yazı tipi boyutunu sıfır olarak ayarlamak, arama motorları tarafından bile "cezalandırılabilir", çünkü gerçek kullanıcılar için değil, yalnızca arama motorları için anahtar kelime içerikli içeriğin eklenmesinin bir yolu.
katma yazar OMA, kaynak

Her zaman okuması daha kolay göründüğü için çıkarırız, sıfır dışarı çıkar ve çevresindeki birim değerlerden kolayca ayırt edilebilir.

1
katma