HTML kimliği için pratik maksimum uzunluk nedir?


89

HTML Spec diyor

Kimlik ve İSİM simgeleri bir harfle ([A-Za-z]) başlamalı ve ardından herhangi bir sayıda harf, rakam ([0-9]), kısa çizgi ("-"), alt çizgi ("_") gelebilir , iki nokta üst üste (":") ve noktalar (".").

Ve HTML 4'ün SGML bildirimi NAMELEN için 65536 değerini kullansa da, "Sabit sınırlardan kaçının" notunu verir.

Ancak kesinlikle tarayıcılar, CSS uygulamaları ve JavaScript araç kitlerinin destekledikleri uzunlukta bazı sınırlamaları olmalıdır . Bir HTML / CSS / JS uygulamasında kullanılması güvenli olan en küçük bu tür sınır nedir?


3
Kimliklerin bir harfle başlaması gerektiğini belirttiğiniz için teşekkür ederiz ve +1. Geçmişte '1', '2', '3', '4', '5' gibi kimlikleri sorunsuz bir şekilde kullandım. Anketle ilgili çok sayıda pencere öğesi ve etkileşimli öğe yapıyorum ve IDS'yi bu gibi kullanışlı bir 'puan' özelliği ve kimlik referansı olarak kullanıyorum. Bugün gerçekten işe yaraması gereken bir CSS çalışması elde etmeye çalışıyordum. W3C doğrulayıcısını bile geçtim ve beni bu konuda uyarmadı ... Ama bu gönderi yaptı. Ve şimdi id = '5'i' x5x 'olarak değiştirdiğimde css çalışıyor ... Şimdi x'leri çıkarmak için puanlama alt yordamını değiştirmem gerekiyor! Tekrar Thx.
Ben A. Hilleli

Yanıtlar:


218

Henüz test edildi: 1 milyon karakter her modern tarayıcıda çalışıyor: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3.

Daha uzun kimliklerin hatırlanmasının zorlaşabileceğinden şüpheleniyorum.


15
Bu adam 10 "milyon" karakter yaptı! stackoverflow.com/a/1496150/74585
Matthew Lock

1
Üzgünüm. 1 milyon? 1 Milyonda mı?
beliha

8
@phihag Toronto'da bilgisayar bilimi okuduğumda ve eğitmen "1582 Ekim'inde gregorian takviminde 10 günün neden eksik olduğunu elbette herkes biliyor" diye alay etti, bana küçümseyici bir şekilde bakan ve diyen bir meslektaşıma sormak zorunda kaldım " Gregoryen Takvimi'nin benimsenmesinden dolayı, ne, ilkokula hiç gitmediniz mi? " Yapmadım. Kanada'da değil. Mısır'da ilkokula gittim ve onun yerine İslami Takvimi öğrendim. SI önekleriyle aynı şey: Batı eğitiminden yararlanabilirsiniz, ben yapmadım. Ama yine de küçümseyen tavrınız için teşekkürler.
beliha

2
@beliha Oldukça eminim ki, en azından burada Portekiz'de, gregorian takviminin Ekim 1582'de 10 günü eksik olduğunu hiç duymadım ve sanırım tek kişi ben değilim. Okulun bunu benim hatırlayabildiğim kadarıyla öğrettiğini sanmıyorum, bu yüzden herkesin bilmesini beklemek cesurca olurdu.
user7393973

1
@beliha Batı okuluna gittim ve gregorian takvimini kullandığımızı bile öğrenmedim (en azından bu isimle değil), sadece standart takvim terimini kullandık. ve bu 10 kayıp günü youtube'dan öğrendim.
Tinaira

15

Benim için pratik bir sınır, HTML / CSS ile çalışırken kafamda ne kadar uzun süre saklayabileceğim bir kimliktir.

Bu sınır, ne kadar süredir çalıştığıma ve adların öğe bağlamında anlamlı olup olmadığına bağlı olarak genellikle 8 ila 13 karakter arasındadır.


5
Gerekirse önekler kullanarak kişinin "dahili tamponunu" genişletmenin mümkün olabileceğini ekleyeceğim. :-)
Ben Blank

12
Bu soru hala çok önemlidir, çünkü DEA'larda çoğu zaman kimlikler kod tarafından üretilir ve benzersiz olmaları için uzun olabilir; örnek olarak: window_2_panel_12_group_6_label_2 _...
Josh

3

Bazen çok uzun kimliklerle karşılaşacağım, ancak bunları tutarlı bir şekilde amaçlarına uygun şekilde adlandırıyorum.

Örneğin...

<div id="page">
    <div id="primary-content"></div>
    <div id="secondary-content"></div>
    <div id="search-form-and-primary-nav-wrapper">
        <form id="search-form"></form>
        <ul id="primary-nav">
            <li id="primary-nav-about-us"></li>
        </ul>
    </div>
    <a id="logo"><img /></a>
</div><!-- /#page -->

Gördüğünüz gibi, seçiciler bazen oldukça uzundur. Ancak IMHO, #doc, #bd, # yui-main, vb. Gibi kimliklerle sonlandığınız YUI grids.css gibi bir şeyle çalışmaktan çok daha kolaydır.


3
Çok yaptığım şey onları mirasçı olarak adlandırmaktır, bu nedenle bir div id = 'user' olsun, o zaman bunun içinde üç div'e sahip olabilirim, id = 'user-stats', id = 'user-envanter', id = 'user- spells ', ardından kullanıcı istatistikleri içinde 5 div'e sahip olabileceğimi söyleyin, id =' user-stats-force ', id =' user-stats-agility ', id =' user-stats-defence ', id =' user- stat-intellect ', id =' user-stats-heath 'vb, isimlendirme kurallarını koruduğum sürece kimliklerini hatırlamak için çok yararlı buluyorum, yani boşluklar veya camelCase için -'ler veya _'ler.
Psytronic

2

Eğer bu akademik bir soruysa, oldukça ilginç ... ama en iyi uygulamalar söz konusu olduğunda, bunları uzatmanıza gerek yok ya da istememelisiniz. Bir HTML öğesi hakkındaki verileri depolamanız gerekiyorsa, bunu DOM nesnesindeki bir özniteliğe yerleştirmek daha iyidir.

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.