Подтвердить что ты не робот

Является ли идентификатор допустимым пустым в HTML-теге?

Является ли атрибут ID на элементе HTML пустым?

<div id=""></div>

Я использую шаблон, в котором идентификатор элемента задается переменной, которая может не всегда иметь значение, и мне интересно, могут ли это вызвать какие-либо непредвиденные проблемы.

EDIT: "переменная" на самом деле является редактируемой областью (блоком) в шаблоне Django. Это означает, что я не могу поставить на него условную логику.

<div id="{% block id %}{% endblock %}">

Вместо

<div {% block id %}{% endblock %}>

Что должно быть наследовано в подшаблоне как:

{% block id %}id="whatever"{% endblock %}
4b9b3361

Ответ 1

В соответствии с W3C:

Идентификаторы идентификатора и NAME должны начинаться с письмо ([A-Za-z]) и может быть выполнено любым количеством букв, цифр ([0-9]), дефис ( "-" ), подчеркивание ( "_" ), двоеточия ( ":" ) и периоды ( "").

(Источник: Основные типы данных HTML)

Это означает, что пустое значение для атрибута недействительно в соответствии с указанным выше определением.

Попытка проверки на наличие пустого идентификатора атрибута возвращает следующее:

Синтаксис значения атрибута не соответствовать объявленному значению

<div id="">something</div>

Значение атрибута, содержащегося то, что запрещено указанный синтаксис для этого типа атрибут. Например, Атрибут "selected" должен быть сведено к минимуму как "выбранное" или прописано в полном объеме, как выбрано "selected =" ""; вариант "selected =" "" не разрешен.

Ответ 2

Ничего, ни один браузер не будет разбит на пустые идентификаторы. Во всяком случае, если вы хотите создать правильный HTML, вы должны генерировать поддельные идентификаторы. Если вы хотите создать пятизвездочный-действительный HTML, поддельные идентификаторы должны быть разными, скажем, префикс + счетчик.

Ответ 3

Сначала я бы не стал пустым, просто script (или, тем не менее, означает, что вы вставляете свой ID) добавляете атрибут к div. Таким образом ваш код будет проверяться, если это что-то для вас значит.

Неактивные атрибуты недействительны, но атрибут не действителен. Там не должно быть никаких проблем, просто убедитесь, что вы сохраняете свои идентификаторы уникальными. Я уверен, что вы это знали.

Ответ 4

Он не будет проверяться как действительный документ.

Валидатор W3 выдаст ошибку, аналогичную: синтаксис значения атрибута не соответствует объявленному значению

Идентификатор должен быть уникальным. Поэтому, если у вас более одного, это нарушит это правило.