Berapa panjang maksimum praktis untuk ID HTML?

88

Spesifikasi HTML mengatakan

Token ID dan NAMA harus dimulai dengan huruf ([A-Za-z]) dan dapat diikuti dengan sejumlah huruf, angka ([0-9]), tanda hubung ("-"), setrip bawah ("_") , titik dua (":"), dan titik (".").

Dan meskipun deklarasi SGML dari HTML 4 menggunakan nilai 65536 untuk NAMELEN, ia mencatat "Hindari batas tetap."

Tapi tentunya browser, implementasi CSS, dan toolkit JavaScript harus memiliki beberapa batasan pada lamanya yang mereka dukung. Berapa batas terkecil yang aman digunakan dalam aplikasi HTML / CSS / JS?

sistem JEDA
sumber
3
Terima kasih dan +1 karena telah menunjukkan bahwa ID harus dimulai dengan surat. Saya telah menggunakan ID seperti '1', '2', '3', '4', '5' di masa lalu tanpa masalah. Saya melakukan banyak widget terkait survei dan elemen interaktif dan menggunakan IDS seperti ini dibuat untuk atribut 'skor' yang nyaman serta referensi ID. Hari ini saya mencoba membuat beberapa CSS berfungsi yang seharusnya berfungsi. Saya bahkan menjalankannya melewati validator W3C dan itu tidak mengingatkan saya akan masalah ini ... Tapi posting ini melakukannya. Dan sekarang ketika saya mengubah id = '5' menjadi 'x5x' css bekerja ... Sekarang saya hanya perlu mengubah subrutin penilaian untuk menghapus x! Terima kasih lagi.
Ben A. Hilleli

Jawaban:

217

Baru saja diuji: 1 juta karakter berfungsi di setiap browser modern: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3.

Saya menduga identitas yang lebih panjang bisa menjadi sulit untuk diingat.

phihag
sumber
15
Orang ini telah melakukan 10 "juta" karakter! stackoverflow.com/a/1496150/74585
Matthew Lock
1
Maafkan saya. 1 jt? Seperti 1 Juta?
beliha
8
@phihag Ketika saya belajar Ilmu Komputer di Toronto, dan instruktur menyindir bahwa "semua orang tentu tahu mengapa ada 10 hari yang hilang dalam kalender masehi pada bulan Oktober 1582", saya harus bertanya kepada seorang rekan, yang memandang saya dengan merendahkan dan berkata " Karena diadopsi dari Kalender Gregorian, apa, kamu tidak pernah sekolah dasar? " Saya tidak. Bukan di Kanada. Saya pergi ke sekolah dasar di Mesir, dan belajar tentang Kalender Islam sebagai gantinya. Hal yang sama dengan awalan SI: Anda mungkin mendapat manfaat dari pendidikan barat, saya tidak. Tapi terima kasih atas sikap merendahkannya.
beliha
2
@beliha Cukup yakin bahwa setidaknya di sini di Portugal saya belum pernah mendengar bahwa kalender masehi memiliki 10 hari yang hilang pada bulan Oktober 1582, dan saya menduga bahwa saya bukan satu-satunya. Saya tidak berpikir sekolah pernah mengajarkan hal itu dari apa yang saya ingat sehingga akan menjadi berani bagi siapa pun untuk mengharapkan semua orang mengetahuinya.
pengguna7393973
1
@beliha Saya bersekolah di sekolah barat dan bahkan tidak mengetahui bahwa kami menggunakan kalender masehi (tidak setidaknya dengan nama ini), kami hanya menggunakan istilah kalender standar. dan tentang 10 hari yang hilang ini, saya mempelajarinya dari youtube.
Tinaira
15

Batasan praktis, bagi saya, adalah seberapa lama ID yang dapat saya simpan di kepala selama saya bekerja dengan HTML / CSS.

Batasan ini biasanya antara 8 dan 13 karakter, tergantung pada berapa lama saya telah bekerja dan apakah nama tersebut masuk akal dalam konteks elemen.

Nick Presta
sumber
5
Saya akan menambahkan bahwa dimungkinkan untuk memperluas "buffer internal" seseorang dengan menggunakan prefiks, jika perlu. :-)
Ben Blank
12
Pertanyaan ini masih sangat penting, karena dengan RIA, sering kali ID dibuat oleh kode, dan agar unik, bisa panjang; sebagai contoh: window_2_panel_12_group_6_label_2 _...
Josh
3

Terkadang saya akan mendapatkan ID yang sangat panjang, tetapi saya menamainya secara konsisten agar sesuai dengan tujuan tepatnya.

Sebagai contoh...

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

Seperti yang Anda lihat, penyeleksi terkadang cukup panjang. Tapi IMHO jauh lebih mudah daripada bekerja dengan sesuatu seperti YUI grids.css di mana Anda berakhir dengan ID seperti #doc, #bd, # yui-main, dll.

Mark Hurd
sumber
3
Yang sering saya lakukan adalah menamainya secara heirachically, jadi miliki div id = 'user', lalu di dalamnya saya mungkin memiliki tiga div, id = 'user-stats', id = 'user-inventory', id = 'user- mantra ', lalu katakan dalam statistik pengguna saya mungkin memiliki 5 div, id =' user-stats-strength ', id =' user-stats-agility ', id =' user-stats-defense ', id =' user- stats-intellect ', id =' user-stats-heath 'dll, yang menurut saya sangat berguna untuk mengingat id mereka, selama saya mempertahankan konvensi penamaan, yaitu -'s atau _'s untuk spasi atau camelCase.
Psytronic
2

Jika ini adalah pertanyaan akademis, ini cukup menarik ... tetapi sejauh menyangkut praktik terbaik, Anda tidak perlu - atau ingin - mengembangkannya. Jika Anda perlu menyimpan data tentang elemen HTML, lebih baik memasukkannya ke dalam atribut pada objek DOM.

Matt Howell
sumber