<div id="example-value">
czy <div id="example_value">
?
Ta strona i Twitter używają pierwszego stylu. Facebook i Vimeo - drugi.
Którego używasz i dlaczego?
html
coding-style
naming-conventions
Emanuil Rusev
źródło
źródło
Odpowiedzi:
Użyj łączników, aby zapewnić izolację między kodem HTML i JavaScript.
Czemu? patrz poniżej.
Łączniki można używać w CSS i HTML, ale nie w obiektach JavaScript.
Wiele przeglądarek rejestruje identyfikatory HTML jako obiekty globalne w oknie / obiekcie dokumentu, w dużych projektach może to stać się prawdziwym problemem.
Z tego powodu używam nazw z łącznikami, dzięki czemu identyfikatory HTML nigdy nie będą kolidować z moim JavaScriptem.
Rozważ następujące:
message.js
html
Jeśli przeglądarka zarejestruje identyfikatory HTML jako obiekty globalne, powyższe zakończy się niepowodzeniem, ponieważ wiadomość nie jest „niezdefiniowana” i spróbuje utworzyć instancję obiektu HTML. Upewniając się, że identyfikator HTML ma łącznik w nazwie, zapobiega konfliktom, takim jak ten poniżej:
message.js
html
Oczywiście możesz użyć messageText lub message_text, ale to nie rozwiązuje problemu i możesz później napotkać ten sam problem, w którym przypadkowo uzyskasz dostęp do obiektu HTML zamiast JavaScript
Jedna uwaga, wciąż możesz uzyskać dostęp do obiektów HTML poprzez (na przykład) obiekt window, używając window ['tekst-wiadomości'];
źródło
window['message-text'];
Polecam przewodnik po stylach Google HTML / CSS
W szczególności stwierdza :
Oddziel słowa w ID i nazwach klas myślnikiem . Nie łącz słów i skrótów w selektorach za pomocą żadnych znaków (w tym żadnego) innych niż łączniki, aby poprawić zrozumienie i czytelność.
źródło
BEM
notacją?To naprawdę sprowadza się do preferencji, ale tym, co będzie Cię kołysać w określonym kierunku, może być edytor, w którym kodujesz. Na przykład funkcja autouzupełniania TextMate zatrzymuje się na myślniku, ale traktuje słowa oddzielone podkreśleniem jako pojedyncze słowo. Dlatego nazwy klas i identyfikatory z
the_post
działają lepiej niżthe-post
podczas korzystania z funkcji automatycznego uzupełniania (Esc
).źródło
Uważam, że to zależy wyłącznie od programisty. Możesz też użyć camelCase, jeśli chcesz (ale myślę, że wyglądałoby to niezręcznie).
Osobiście wolę łącznik, ponieważ na mojej klawiaturze można pisać szybciej. Więc powiedziałbym, że powinieneś wybrać to, z czym czujesz się najbardziej komfortowo, ponieważ oba twoje przykłady są szeroko używane.
źródło
Każdy przykład jest całkowicie poprawny, możesz nawet wrzucić do mieszanki „:” lub „”. jako separatory zgodnie ze specyfikacją w3c . Osobiście używam „_”, jeśli jest to nazwa składająca się z dwóch słów, tylko ze względu na jej podobieństwo do spacji.
źródło
ZZ:ZZ
musiałby zostaćZZ\00003AZZ
zastąpiony kodem ucieczki jako (CSS2 i nowsze).Używam pierwszego (jeden-dwa), ponieważ jest bardziej czytelny. W przypadku obrazów wolę jednak podkreślenie (btn_more.png). Camel Case (oneTwo) to kolejna opcja.
źródło
W rzeczywistości niektóre zewnętrzne frameworki (javascript, php) mają trudności (błędy?) Z używaniem łącznika w nazwach identyfikatorów. Używam podkreślenia (tak samo jak 960grid) i wszystko działa świetnie.
źródło
Sugerowałbym podkreślenie głównie ze względu na efekt uboczny javascript, z którym się spotykam.
Jeśli wpiszesz poniższy kod na pasku adresu, pojawi się błąd: „przykładowa wartość” jest niezdefiniowana. Jeśli element div został nazwany z podkreśleniami, zadziała.
źródło
document.getElementById("example-value")
, co będzie działać dobrze.