это автофокус = "автофокус" или автофокус? - PullRequest
82 голосов
/ 15 декабря 2010

Мне кажется, что большинство (может быть, все) атрибуты в предыдущих версиях HTML (до HTML5) требовали, чтобы атрибуты имели значения, например readonly="readonly".

Это верно для HTML5 и атрибута autofocus

Ответы [ 3 ]

88 голосов
/ 15 декабря 2010

В HTML вы используете логические атрибуты со значениями или без, как вам нравится.Булево, для W3C, например, автофокусировка может быть написана так: autofocus или autofocus="autofocus", а также autofocus="".

Если вы не хотите автофокус, просто не пишите.

Я думаю, что вы запутались, потому что XHTML требует значений для всех атрибутов: attributes="values".

Вот некоторая информация об использовании логических атрибутов в HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

45 голосов

Процитируем HTML5 спецификацию и немного расширяем Pekka:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute:

Атрибут автофокуса является логическим атрибутом.

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>, поскольку оно короче.

22 голосов
/ 15 декабря 2010

Нет , достаточно указать сам атрибут.Так было и в HTML 4 .

. Ряд атрибутов логические атрибуты .Наличие логического атрибута в элементе представляет истинное значение, а отсутствие атрибута представляет ложное значение.

Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое являетсясопоставление ASCII без учета регистра для канонического имени атрибута без пробелов в начале или в конце.

Пример:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
...