<div id="example-value">
atau <div id="example_value">
?
Situs dan Twitter ini menggunakan gaya pertama. Facebook dan Vimeo - yang kedua.
Mana yang Anda gunakan dan mengapa?
html
coding-style
naming-conventions
Emanuil Rusev
sumber
sumber
Jawaban:
Gunakan Tanda Hubung untuk memastikan isolasi antara HTML dan JavaScript Anda.
Mengapa? Lihat di bawah.
Tanda hubung valid untuk digunakan di CSS dan HTML, tetapi tidak untuk Objek JavaScript.
Banyak browser mendaftarkan ID HTML sebagai objek global pada objek jendela / dokumen, dalam proyek-proyek besar, ini bisa sangat merepotkan.
Untuk alasan ini, saya menggunakan nama dengan tanda hubung sehingga ID HTML tidak akan pernah konflik dengan JavaScript saya.
Pertimbangkan hal berikut:
message.js
html
Jika browser mendaftarkan id HTML sebagai objek global, hal di atas akan gagal karena pesannya tidak 'tidak ditentukan' dan akan mencoba membuat instance dari objek HTML. Dengan memastikan ID HTML memiliki tanda hubung pada namanya mencegah konflik seperti di bawah ini:
message.js
html
Tentu saja, Anda dapat menggunakan messageText atau message_text tetapi ini tidak menyelesaikan masalah dan Anda dapat mengalami masalah yang sama nanti di mana Anda secara tidak sengaja mengakses Objek HTML dan bukan JavaScript.
Satu komentar, Anda masih dapat mengakses objek HTML melalui (misalnya) objek jendela dengan menggunakan window ['message-text'];
sumber
window['message-text'];
Saya akan merekomendasikan Panduan Gaya HTML / CSS Google
Ini secara khusus menyatakan :
Pisahkan kata dalam ID dan nama kelas dengan tanda hubung . Jangan gabungkan kata dan singkatan di pemilih dengan karakter apa pun (termasuk tidak ada sama sekali) selain tanda hubung, untuk meningkatkan pemahaman dan kemudahan pemindaian.
sumber
BEM
notasi?Itu benar-benar tergantung pada preferensi, tetapi apa yang akan mempengaruhi Anda ke arah tertentu mungkin editor yang Anda kodekan. Misalnya, fitur pelengkapan otomatis TextMate berhenti di tanda hubung, tetapi melihat kata-kata yang dipisahkan oleh garis bawah sebagai satu kata. Jadi nama kelas dan id dengan
the_post
berfungsi lebih baik daripadathe-post
saat menggunakan fitur pelengkapan otomatis (Esc
).sumber
Saya yakin ini sepenuhnya terserah programmer. Anda bisa menggunakan CamelCase juga jika Anda mau (tapi menurut saya itu akan terlihat canggung.)
Saya pribadi lebih suka tanda hubung, karena lebih cepat mengetik di keyboard saya. Jadi saya akan mengatakan bahwa Anda harus memilih apa yang menurut Anda paling nyaman, karena kedua contoh Anda digunakan secara luas.
sumber
Salah satu contoh benar-benar valid, Anda bahkan dapat memasukkan ":" atau "." sebagai pemisah menurut spesifikasi w3c . Saya pribadi menggunakan "_" jika itu adalah nama dua kata hanya karena kemiripannya dengan spasi.
sumber
ZZ:ZZ
harus di-escape sebagaiZZ\00003AZZ
(CSS2 dan di atasnya).Saya menggunakan yang pertama (satu-dua) karena lebih mudah dibaca. Untuk gambar meskipun saya lebih suka garis bawah (btn_more.png). Camel Case (oneTwo) adalah pilihan lain.
sumber
Sebenarnya beberapa framework eksternal (javascript, php) mengalami kesulitan (bug?) Dengan menggunakan tanda hubung pada nama id. Saya menggunakan garis bawah (begitu juga 960grid) dan semuanya bekerja dengan baik.
sumber
Saya akan menyarankan garis bawah terutama untuk alasan efek samping javascript yang saya hadapi.
Jika Anda mengetik kode di bawah ini ke bilah lokasi, Anda akan mendapatkan pesan kesalahan: 'nilai-contoh' tidak ditentukan. Jika div diberi nama dengan garis bawah, itu akan berhasil.
sumber
document.getElementById("example-value")
, yang akan bekerja dengan baik.