Здається , я пригадую більшість (можливо все) атрибути в раніше версіях HTML (до HTML5) , необхідні атрибути , щоб мати значення, як readonly="readonly"
.
Це справедливо для HTML5 та autofocus
атрибута?
Здається , я пригадую більшість (можливо все) атрибути в раніше версіях HTML (до HTML5) , необхідні атрибути , щоб мати значення, як readonly="readonly"
.
Це справедливо для HTML5 та autofocus
атрибута?
Відповіді:
У 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
disabled="disabled"
. Те саме стосується закриття тегів. У HTML не кожен тег повинен бути закритим (наприклад, br або input), але оскільки XHTML повинен бути дійсним XML, вам також потрібно закрити теги.
disabled="disabled"
". І SGML - це єдина причина, чому XHTML має silly="silly"
синтаксис bool, а не просто whatever="true"
, а HTML - це єдина причина, чому це this="false"
може означати this = true. :)
Процитувавши специфікацію 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>
оскільки він коротший.
Ні , досить вказати сам атрибут. Так було і в HTML 4 .
Ряд атрибутів є логічними атрибутами . Наявність булевого атрибута в елементі представляє справжнє значення, а відсутність атрибута - хибне значення.
Якщо атрибут присутній, його значення має бути або порожнім рядком, або значенням, яке не відповідає регістру ASCII для канонічного імені атрибута, без пробілів, що ведуть або відстають.
Приклад:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>