HTML / CSS adlandırma kuralları (sözdizimi) için pratik düşünceler [kapalı]


28

Soru: Sözdizimi classve iddeğerleri için pratik düşünceler nelerdir?

Örneğin bu blog yayınında tanımlandığı gibi anlambilim , yani kullanılan gerçek kelimeler hakkında soru sormadığımı unutmayın . Adlandırma sözleşmelerinin bu tarafında çok fazla kaynak var, aslında çeşitli sözdizimsel bitler hakkında pratik bilgiler araştırmamı engelliyor : kasa, karşılıklı kullanım (özellikle kısa çizgi), kullanılacak veya kaçınılması gereken özel karakterler vb.-

Nedenlerini özetlemek için bu soruyu soruyorum:

  • Kimlik ve sınıf üzerindeki adlandırma kısıtlamaları doğal olarak herhangi bir sözleşmeye yol açmaz
  • Adlandırma sözleşmelerinin anlamsal tarafındaki kaynakların bolluğu, sözdizimsel düşünceleri gizlemekte
  • Bu konuda hiçbir yetkili kaynak bulamadım
  • SE Programcıları hakkında henüz bu konuda bir soru yoktu :)

Kullanmayı düşündüğüm bazı sözleşmeler:

  1. UpperCamelCase, özellikle sunucu tarafı kodlamasından çapraz geçiş alışkanlığı olarak
  2. lowerCamelCase, JavaScript adlandırma kurallarıyla tutarlılık için
  3. css-style-classes, css özelliklerinin isimlendirilmesiyle uyumludur (Ctrl + Shift + ArrowKey metin seçiminde can sıkıcı olabilir)
  4. with_under_scoresşahsen görmediğim kadar çok kullandım
  5. alllowercase, hatırlaması kolay ancak daha uzun isimler için okunması zor olabilir
  6. UPPERCASEFTW, diğer programcılarınızı kızdırmanın harika bir yolu olarak (belki de okunabilirlik için seçenek 4 ile birlikte kullanılabilir)

Muhtemelen bazı önemli seçenekleri veya kombinasyonları da dışarıda bıraktım. Öyleyse: sözleşmelerin isimlendirilmesi için hangi düşünceler var ve hangi sözleşmelere önderlik ediyorlar?


CamelCaseEverythingInCode
Ryathal

11
BUT_WHY_WOULD_YOU_DO_THAT_IS_THE_QUESTION? ;)
Jeroen

Genelde sınıfları ve CamelCase'i küçük harcarım. Belli bir sebep yok
Antarr Byrd

Bir alt-optimal bir metin düzenleyicisi kullanırsanız ;-) sadece bir konudur - "css özelliklerinin adlandırma ile tutarlıdır (ancak metnin + ArrowKey seçimi Ctrl + Shift zaman can sıkıcı olabilir) css stili-sınıfları,"
tdammers

@ PascalCase (veya UpperCamelCase), camelCase (veya lowerCamelCase) olanRathal buna benziyor.
Danny Varod

Yanıtlar:


18

Ödül olsun ya da olmasın, seçim bir dereceye kadar her zaman bir "tercih meselesi" olacaktır - sonuçta, W3C'nin doğru hissetmediğiniz belli bir sözleşmeyi önermesi (ya da empoze edilmesi) nasıl olurdu?

Bununla birlikte, lowerCamelCasesözleşmeyi bizzat kendim tercih ettim ve kararımı vermek için kullandığım sebepleri ve pratik düşünceleri vereceğim - bunu bir eleme işlemi ile yapacağım, sorunuzu numaralandırmayı kullanarak:

(5.) sadece dikkatlice okunabiliyorduçünkü sen, ne zamandan beristartandenderi bilirsin.

(6.) ASABOVEPLUSITSANNOYINGLIKESOMEONSHOUTING.

(4.) historical_incompatibility_plus_see: Mozilla Dev Documentation .

(3.) biraz bit-to-to-open ... açıkladığınız gibi, metin editörlerinde seçilebilirlik bir konudur (editöre bağlı olarak alt çizgilerde olduğu gibi), ama benim için de bana hatırlattığı gerçek Satırlara özgü anahtar kelimeler için ayrılmış sözdizimi , bunlar bir tire ile başlasalar bile, bir tire ile başlasalar bile.

Bu, sırasıyla (1.) ve (2.), UpperCamelCase ve lowerCamelCase değerlerini bırakır. Java sınıfları (daha açık bir şekilde tanımlanmış bir kural olan UpperCamelCase olan) olan Java sınıflarıyla olan zihinsel bağlantıya rağmen , CSS sınıf adları benim için küçük harfle başlamaktan daha iyi görünüyor. Belki de bu, XHTML öğesi ve öznitelik adları nedeniyledir , ancak sanırım CSS sınıflarının UpperCamelCase kullanmasını sağlamanın da onları ayırmaya yardımcı olacağı anlamına gelebilir. Başka bir nedene ihtiyacınız varsa, lowerCamelCase W3C'nin iyi sınıf adları için örneklerde kullandığı şeydir (URL'nin kendisi sinir bozucu bir şekilde benimle aynı fikirde değildir).

Yukarıda belirtilen nedenlerden ötürü (4.), (5.) ve (6.) 'ya karşı tavsiyelerde bulunabilirim, ancak diğer üçünün ikisinde de tartışmalar yapılabileceğini varsayalım.

Siz (veya bu konuda bir başkası) bu konuda benimle aynı fikirde olup olmadığınız size kalmış. Şimdiye kadar yetkili kaynaklardan alıntı yapan kesin bir cevabınız olmadığı gerçeği , bu konuda kesin bir standart gibi bir şey olmadığı ipucu olarak alınabilir (aksi halde hepimiz kullanıyorduk). Bunun mutlaka kötü bir şey olduğundan emin değilim.


Teşekkürler! Diğer birçok cevap gibi, bunun bir tercih meselesi olduğunu ancak aynı zamanda bazı pratik önerileri ve daha önemli hususlar (one_on_icompatability gibi) hakkındaki birkaç iyi bağlantıyı tamamladığından bahsettiniz. Her ne kadar @tdammers'ın cevabında (kısa çizgilerle adlandırma) öneriyle devam etmeyi düşünmeme rağmen, burada verilen cevap aslında sorduğum soruyu cevaplayan cevap. Yani: ödül + kabul edildi, artı çok teşekkürler :)
Jeroen

Çok teşekkürler - tutarlı kaldığınız sürece, bu üçünün de iyi olduğunu düşünüyorum. Orada aralarında çok değil ve net üzerindeki sitelerde bakarsak, emin her ;-) örnekleri bol bulabilirsiniz değilim
Amos M. Carpenter

+1 Yine de, mutlaka kötü bir şey olduğuna eminim. Topluluğa dayalı standartların adlandırma, biçimlendirme ve genel stil sözleşmeleri konusundaki çabaları için çaba sarf etmeme rağmen, tekdüzelik eksikliği proje mirasını bir kabus haline getirebilir ( böyle bir kabusun standartlar tarafından hafifletileceğini söylememek, muhtemelen onlar olmazdı) takip etti ) CSS'nin zayıf ve beyan edici olduğu gerçeği, müşteri ve sunucu tarafı uygulama mantığı ile basit kancalar kadar iç içe geçmiş olduğu gerçeği, birleşik bir yapı için özlem
duyuyor (bununla özlüyorum, özlüyorum

Alt çizgilerden kaçınılması gerektiğine kesinlikle katılıyorum (sunucu tarafı kodunuz alt çizgi kullanıyorsa, belki de kimlik adları hariç). Tire, programlama dillerinde ayırıcı olarak kullanılamaz çünkü kısa çizgi eksi işlecidir. Ancak alt çizgi kullanabileceğiniz başka herhangi bir bağlamda, tirelerin daha doğal bir seçim olduğunu düşünüyorum - bir URL'nin altı çizildiğinde daha kolay görünür ve URL'ler için URL'ler için.
Matt Browne

7

CSS sınıfı isimlerindeki kelimeler tire ( class-name) ile ayrılmalıdır , çünkü CSS özellikleri ve sözde sınıflardaki kelimeler birbirinden ayrılır ve bunların sözdizimi CSS özellikleri tarafından tanımlanır .

Kimlik isimlerindeki kelimeler ayrıca, sınıf isimlerinin sözdizimsel stiline uyması için kısa çizgilerle ayrılmalıdır, çünkü kimlik isimleri URL'lerde sıkça kullanılır ve çizgi, URL'lerde orijinal ve en yaygın kelime ayırıcıdır.


Ah +1, URL’lerde kimliğin belirtilmesini seviyorum. Her ne kadar komik bir parça olsa da, bunun hakkında biraz düşünmek için Wikipedia'nın nasıl yaptığını kontrol etmeye gittim. Örneğin , Wikipedia CSS makalesinin Browswer destek bölümü şunları verdi <span id="Browser_support" class="mw-headline">Browser support</span>:: O
Jeroen

3

Bu çoğunlukla tercih meselesi; konuyla ilgili yetkili bir kaynak olmasa bile, belirlenmiş bir standart yoktur. En rahat hissedeceğiniz şeyi kullanın; sadece tutarlı ol.

Şahsen ben kullanmak css-style-with-dashes, ama çok kelimeli sınıf isimleri önlemek ve mümkün olan her yerde (birden çok sınıfları kullanmayı deneyin button important defaultziyade button-important-default). Tecrübelerime göre, bu aynı zamanda yüksek kaliteli web siteleri ve çerçeveler arasında en popüler seçenek olarak görünmektedir.

Çizgileri olan küçük harf nowordseparatorswhatsoever, en azından ABD klavyelerinde, diğer seçeneklerden (okunması zor olan kurallar hariç ) en azından ABD klavyelerinde yazmak kolaydır , çünkü Shift tuşunu kullanmanız gerekmez.

Kimlikler için, doğrudan javascript (örn. document.forms[0].btn_ok) İçindeki kimlikleriyle öğelere referans vermek istiyorsanız , çizgilerin çok iyi çalışmayacağına dair ek pratik bir görüş vardır - ama sonra, eğer jQuery kullanıyorsanız, muhtemelen $()Yine de onları kullanın , öyleyse sadece sahip olabilirsiniz $('#btn-ok');

Kayıt için, düzenli rastlamak başka kongre özellikle form kontrolleri için, eleman türünü göstermek için kimlikleri Macar siğil kullanır - ederdiniz, böylece #lblUsername, #tbUsername, #valUsernamekullanıcı adı etiketi, girdi ve doğrulayıcı için.


Cevap için teşekkürler! Birinin bunu daha az "tercih meselesi" yapan bir cevabı olmasını umarak bir ödül kazanacağım. Hiçbiri görünmese de cevabınızı kabul ettiğinizden emin olacağım.
Jeroen

2

En önemli şeyin tutarlılık olduğuna kuvvetle inanıyorum.

Buna bakmanın iki yolu var:

  1. İyi bir argüman yapılabilir alllowercaseveya css-style-clauses(muhtemelen daha iyi bir seçim olabilir) çünkü içinde bulundukları kodla en tutarlı olacaklardır. Kodun tümüne daha doğal bir akış katacaktır ve hiçbir şey zorlanmayacak veya yerinden çıkmayacaktır .

  2. Kimlikleri ve sınıfları okunabilirliğe yardımcı olacak şekilde farklılaştıracaksa, HTML etiket adlarından veya CSS cümleciklerinden farklı bir stil için eşit derecede iyi bir argüman yapılabilir. Örneğin, UpperCamelCasekimlikler ve sınıflar için kullandıysanız ve başka bir yapı veya amaç için kullanmadıysanız, bu formatta bir jeton gördüğünüzde bir tanesine çarptığınızı bilirsiniz. Bunun dayatabileceği bir kısıtlama, her kimlik veya sınıfın 2+ kelime adı olmasının en etkili olacağıdır, ancak bu çoğu durumda makul olacaktır.

Bu cevabı yazarken, ikinci seçeneğe daha meyilli olduğumu fark ettim, ancak ikisini de bırakacağım çünkü her iki vakanın da haklı olduğunu düşünüyorum.


-1

Hepsi gerçekten tercih meselesi ya da tembellik meselesi. CamelCasing'in yazılması daha kolay, ancak kişisel olarak okumasını ve hata ayıklamasını CamelCase'den daha kolay bulduğum için alt çizgi gösterimini tercih ediyorum. Uyulması gereken bir kodlama kuralı yok, hiçbir zaman öncekiyle aynı kodlama kurallarına sahip bir yerde çalışmadım.

Çoğu şirket, herkesin üzerinde çalışması için kodu temiz ve kolay tutmak için genel olarak uymanız gereken kurallara sahiptir. Eğer serbest çalışıyorsanız, kod üzerinde çalışan tek kişi siz olduğunuz gibi çıkabilirsiniz. Benim görüşüme göre sadece 2 kodlama sözleşmesi var: CamelCase veya Underscore notasyonu. Benim tavsiyem birini seçmek ve ona bağlı kalmak.


-3

Basit bir gerçeğe habersiz görünüyorsun: çoğu CSS programcılar tarafından yapılmıyor .

Grafik tasarımcıları tarafından yapılır.

Düzenleme savaşlarımızı umursamıyorlar ve shift tuşu ile ne yaptığımızla daha az ilgilenemiyorlar.
Muhtemelen bu _anahtarın nerede olduğunu bile bilmiyorlar . (ya da onun adı ne)

Onlar umurumda değil kod estetik , önem verdikleri estetik estetik .

(Ve orada bir nokta olabilir)

Onlar spesifikasyonları okumaz , bunlar öğretici olsun.
Ve sonra w3schools'daki referansları iki kez kontrol edin.

Bazıları muhtemelen sebeplerden dolayı büyük harf kullanamadıklarına inanıyor.
Garip, çoğunlukla alakasız yanılgılarla doludurlar.


3
Sanırım bu, nerede çalıştığınıza bağlı olarak, standartlar konusunda oldukça militan olan tasarımcılarla çalıştım; Deneyimsiz ön uç geliştiricilerle çalışmaya alışkın olduğunuz şeylerin veya web tasarımcıları olarak maskelenen baskı tasarımcılarının sesleriyle. Artı, projelerimde makul bir miktarda CSS yapıyorum; iş yerimdeki akranlarımdan adil birkaçı olarak, tasarım / programlama bölümünün gerçekten şirket dinamiklerini temel aldığını düşünüyorum.
Ed James,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.