Для HTML 4 відповідь технічно:
Ідентифікатори ID і NAME повинні починатися з літери ([A-Za-z]), за якою може слідувати будь-яку кількість букв, цифр ([0-9]), дефіс ( «-»), підкреслення ( "_"). colons ( ":") і періоди ( ".").
HTML 5 ще більш дозвільний, кажучи тільки, що ідентифікатор повинен містити хоча б один символ і може не містити пропусків.
Атрибут id чутливий до регістру в XHTML.
Ви можете спростити свої завдання розробки, строго дотримуючись угоди про імена. Наприклад, якщо ви повністю обмежуєте символи нижнього регістра і завжди поділяєте слова за допомогою дефісів або підкреслень (але не на обох, виберіть один і ніколи не використовуйте інший), тоді у вас є простий для запам'ятовування шаблон. Ви ніколи не будете дивуватися: «це було firstName або FirstName?» Тому що ви завжди будете знати, що ви повинні ввести first_name. Віддаєте перевагу верблюд? Потім обмежте себе цим, без дефіса або підкреслення, і завжди, послідовно використовуйте або великі букви, або нижній регістр для першого символу, не змішуйте їх.
Ідентифікатори ID і NAME повинні починатися з літери ([A-Za-z]), за якою може слідувати будь-яку кількість букв, цифр ([0-9]), дефіс ( «-»), підкреслення ( "_"). colons ( ":") і періоди ( ".").
Загальною помилкою є використання ідентифікатора, який починається з цифри.
Ви можете технічно використовувати двокрапки і періоди в атрибутах id / name, але я б настійно рекомендував уникнути обох.
Якщо ви вкажете елементу ідентифікатор «my.cool:thing», ваш селектор CSS буде виглядати наступним чином:
Насправді це говорить: «Елемент з ідентифікатором« мій », клас« класний »і« псевдоселектор »в« CSS ».
Дотримуйтеся AZ будь-якого випадку, цифр, підкреслення і дефіс. І, як сказано вище, переконайтеся, що ваші ідентифікатори унікальні.
Це повинно бути вашим першим турботою.
Строго він повинен відповідати
Але у jquery, схоже, проблеми з двокрапкою, тому краще їх уникнути.
позбутися від додаткових обмежень на атрибут id см. тут. Єдині вимоги, залишені (крім унікального в документі):
- значення має містити хоча б один символ (не може бути порожнім)
- він не може містити пробілів.
PRE-HTML5:
Ідентифікатор повинен відповідати:
- Почати з символів AZ або az
- Може містити - (дефіс), _ (підкреслення). (Двокрапка) і. (Період)
але слід уникати. і. обумовлено:
Наприклад, ідентифікатор може бути позначений як «ab: c» і вказано в таблиці стилів як #ab: c, але також як ідентифікатор елемента, це може означати ідентифікатор «a», клас «b», псевдо- селектор «c». Краще уникати плутанини і уникати використання. і взагалі.
На практиці багато сайтів використовують атрибути id починаючи з цифр, хоча це технічно недійсний HTML.
Специфікація проекту HTML 5 послаблює правила для атрибутів id і name. тепер вони представляють собою просто непрозорі рядки, які не можуть містити пробіли.
HTML5: допустимі значення для атрибутів ідентифікатора і класу
Починаючи з HTML5, єдиними обмеженнями на значення ID є:
- повинні бути унікальними в документі
- не повинно містити пробілів
- повинен містити хоча б один символ
Аналогічні правила застосовуються до класів (за винятком унікальності, звичайно).
Таким чином, значенням можуть бути всі цифри, тільки одна цифра, тільки знаки пунктуації, включають спеціальні символи, що завгодно. Просто немає прогалин. Це сильно відрізняється від HTML4.
В HTML 4 значення ідентифікатора повинні починатися з літери, яка потім може слідувати тільки буквами, цифрами, дефісами, символами підкреслення, двокрапкою і періодами.
У HTML5 вони дійсні:
Наприклад, в HTML5 допустимо наступний ідентифікатор:
Однак це є недійсною в CSS:
З специфікації CSS2.1:
В CSS ідентифікатори (включаючи імена елементів, класи і ідентифікатори в селекторах) можуть містити тільки символи [a-zA-Z0-9] і символи ISO 10646 U + 00A0 і вище, плюс дефіс (-) і підкреслення (_); вони не можуть починатися з цифри, двох дефісів або дефісів, за якими слід цифра.
У більшості випадків ви можете уникати символів в контекстах, де у них є обмеження або особливий сенс.
Атрибут id вказує унікальний ідентифікатор його елемента (ID).
Значення має бути унікальним серед всіх ідентифікаторів в домашньому поддереве елемента і має містити як мінімум один символ. Значення не повинно містити пробілів.
Примітка. Немає ніяких інших обмежень на те, яку форму може приймати ідентифікатор; зокрема, ідентифікатори можуть складатися тільки з цифр, починатися з цифри, починатися з підкреслення, складатися тільки з знаків пунктуації і т. д.
Атрибут, якщо вказано, повинен мати значення, яке представляє собою набір розділених простором токенов, що представляють різні класи, до яких належить елемент.
Класи, призначені йому елементом HTML, складаються з усіх повертаються класів, коли значення атрибута класу розбивається на прогалини. (Дублікати ігноруються.)
Для використання з CSS і JQuery допустимі дефіси, підкреслення, періоди, двокрапки, числа і букви. Наступне повинно працювати, але воно повинно бути унікальним на всій сторінці, а також має починатися з літери [A-Za-z].
Робота з двокрапкою і періодами вимагає трохи більше роботи, але ви можете зробити це, як показує наступний приклад.
Пам'ятайте, що ідентифікатор повинен бути унікальним, тобто в документі не повинно бути декількох елементів з однаковим значенням id.
Правила вмісту ID в HTML5 (крім унікальності):
Це специфікація W3 про ID (від MDN):
Більше інформації:
Щоб посилатися на id з періодом в ньому, вам потрібно використовувати зворотну косу риску. Не впевнений, що це те ж саме для дефіса або підкреслення. Наприклад: HTML
З специфікації HTML 4.
Ідентифікатори ID і NAME повинні починатися з літери ([A-Za-z]), за якою може слідувати будь-яку кількість букв, цифр ([0-9]), дефіс ( «-»), підкреслення ( "_"). colons ( ":") і періоди ( ".").
РЕДАКТИРОВАТЬ: d'oh! Збийте кнопку, знову!
Крім того, ніколи не забувайте, що ідентифікатор унікальний. Після використання значення ідентифікатора може не відображатися в будь-якому місці документа.
У вас може бути багато ідентифікаторів, але всі вони повинні мати унікальне значення.
З іншого боку, існує клас-елемент. Подібно ID, він може з'являтися багато разів, але значення може використовуватися знову і знову.
Схоже, що хоча двокрапка (:) і періоди (.) Чи дійсні в специфікації HTML, вони недійсні як селектор ідентифікаторів в CSS, тому, ймовірно, краще за все уникнути, якщо ви збираєтеся використовувати їх для цієї мети.
Значення має бути унікальним серед всіх ідентифікаторів в домашньому поддереве елемента і має містити як мінімум один символ. Значення не повинно містити пробілів.
Принаймні один символ, без пробілів.
- Ідентифікатори найкраще підходять для позначення частин вашого макета, тому не слід вказувати однакове ім'я для ідентифікатора і класу
- ID дозволяє використовувати буквено-цифрові та спеціальні символи
- але уникайте використання #. *. #. *. символи
- неприпустимі прогалини
- починається не з цифр або дефіса, за яким слідує цифра
- делікатний випадок
- використання селекторів ID швидше, ніж використання селекторів класів
- використовувати дефіс «-» (підкреслення «_» також може використовувати, але не корисно для seo) для довгих імен класів CSS або Id
- Якщо правило має селектор ідентифікаторів як його селектора ключів, не додавайте в це правило ім'я тега. Так як ідентифікатори унікальні, додавання імені тега буде марно сповільнювати процес зіставлення.
- У HTML5 атрибут id може використовуватися для будь-якого елементу HTML, а в HTML 4.01 атрибут id не може використовуватися з:
, , , , ,