В html5 для установки флажка, как отмечено, следует ли просто использовать check (как свойство) или checked = "checked" (как атрибут)?
В настоящее время в нашем плагине мы устанавливаем флажки, отмеченные параметром
<input type="checkbox" checked="checked" />
Это должно было сохранить совместимость xhtml. Я больше привык к установке, отмеченной как свойство
<input type="checkbox" checked />
Каков правильный способ работы в html5? Должен ли мы по-прежнему заботиться о совместимости xhtml?
Ответы
Ответ 1
Это атрибут в любом случае. И он устанавливает значение (то же значение, true
) в свойстве DOM элемента node в любом случае.
Для большинства целей не имеет значения, какой синтаксис вы используете. Однако есть несколько замечаний:
- Если вы используете HTML5 в сериализации XML ( "XHTML5" ), вы должны использовать
checked="checked"
.
- В стилировании синтаксисы не совсем эквивалентны при использовании селекторов атрибутов (более короткая форма не соответствует
[checked=checked]
), но это практически не имеет значения: [checked]
соответствует установленным флажкам в обоих случаях.
- Неуклюжий синтаксис
checked="checked"
является задержкой с SGML и включен только для совместимости, поэтому он может заставить ваш код выглядеть старомодным (что редко имеет значение).
Ответ 2
<!-- Default to unchecked -->
<input type="checkbox">
<!-- Default to checked, XHTML -->
<input type="checkbox" checked="checked" />
<!-- Default to checked, HTML5 -->
<input type="checkbox" checked>
Источник: http://css-tricks.com/indeterminate-checkboxes/
Ответ 3
Checked
является логическим атрибутом в HTML 5. Истинное значение указывается присутствующим атрибутом, а ложное значение указывается его отсутствием. Если он присутствует, его значение должно быть пустым или иметь имя свойства checked="checked"
. Любая из этих форм верна:
<input type="checkbox" checked="checked" />
<input type="checkbox" checked>
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes
Ответ 4
Вы заботитесь о совместимости XHTML в HTML5, если вы создаете документы, которые используют сериализацию HTML5 XHTML, либо исключительно путем обслуживания документа с типом mime application/xhtml+xml
, либо создания документа полиглота, который может быть подан либо как application/xhtml+xml
или как text/html
( "обычный" hmml-тип).
Если вы используете только text/html
, вам не нужно заботиться о синтаксисе XHTML. Тем не менее, вы можете использовать самозакрывающийся синтаксис в стиле XML при встраивании SVG или MathML на свою страницу. (SVG широко поддерживается в последних браузерах, но меньше MathML.) Вы также можете использовать />
для того, чтобы покончить с недействительными HTML-элементами, такими как meta, link, input, img и т.д., Но это никак не влияет на использование >
to конец этих элементов.
Небольшой комментарий к терминологии. В разметке в общем языке либо checked
, либо checked="checked"
является "атрибутом". "Свойство" - это нечто другое.
Ответ 5
В соответствии с http://www.w3.org/TR/html-markup/input.checkbox.html это атрибут