Мне кажется, что большинство (возможно, все) атрибутов в предыдущих версиях HTML (до HTML5) требовали, чтобы атрибуты имели значения, например readonly="readonly"
.
Это верно для HTML5 и атрибута autofocus
?
Мне кажется, что большинство (возможно, все) атрибутов в предыдущих версиях HTML (до HTML5) требовали, чтобы атрибуты имели значения, например readonly="readonly"
.
Это верно для HTML5 и атрибута autofocus
?
В HTML вы используете логические атрибуты со значениями или без них.
Логическое значение для W3C, например автофокусировки, может быть записано как autofocus
или autofocus="autofocus"
, а также autofocus=""
.
Если вы не хотите, чтобы автофокусировка просто не записывала его.
Я думаю, вы запутались, потому что XHTML требует значений для всех атрибутов: attributes="values"
.
Вот некоторая информация об использовании атрибута boolean в HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
Обозначая спецификацию HTML5 и добавляя немного к Pekka:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute:
Атрибут autofocus является логическим атрибутом.
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:
Наличие логического атрибута для элемента представляет истинное значение, а отсутствие атрибута представляет ложное значение.
Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое не соответствует значению ASCII для канонического имени атрибута, без начального или конечного пробела.
Заключение
Ниже приведены действительные, эквивалентные и истинные:
<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />
Ниже приведены недействительные:
<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />
Отсутствие атрибута является единственным допустимым синтаксисом для false:
<input type="text"/>
Рекомендация
Если вы хотите написать действительный XHTML, используйте autofocus="autofocus"
, так как <input autofocus>
является недопустимым, а другие альтернативы менее читабельны. Иначе просто используйте <input autofocus>
, поскольку он короче.
Нет, достаточно указать сам атрибут. Так было и в HTML 4.
В число атрибутов входят логические атрибуты. Наличие логического атрибута для элемента представляет истинное значение, а отсутствие атрибута представляет ложное значение.
Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое не соответствует значению ASCII для канонического имени атрибута, без начального или конечного пробела.
Пример:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>