Parece que me lembro da maioria (talvez todos) dos atributos em versões anteriores do HTML (antes do HTML5) que exigiam que os atributos tivessem valores, como readonly="readonly"
.
Isso é verdade para HTML5 e o autofocus
atributo?
Parece que me lembro da maioria (talvez todos) dos atributos em versões anteriores do HTML (antes do HTML5) que exigiam que os atributos tivessem valores, como readonly="readonly"
.
Isso é verdade para HTML5 e o autofocus
atributo?
Respostas:
Em HTML, você usa atributos booleanos com ou sem valores conforme desejar. Um booleano, para W3C, como o foco automático, pode ser escrito assim autofocus
ou autofocus="autofocus"
ou também autofocus=""
.
Se você não quer o foco automático, não o escreva.
Eu acho que você está confuso porque XHTML requer valores para todos os atributos: attributes="values"
.
Aqui estão algumas informações sobre o uso de atributos booleanos em HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
disabled="disabled"
. A mesma coisa vale para tags de fechamento. Em HTML, nem todas as tags precisam ser fechadas (por exemplo, br ou input), mas como o XHTML deve ser um XML válido, você também precisa fechar as tags.
disabled="disabled"
". E SGML é a única razão pela qual XHTML tem a silly="silly"
sintaxe bool em vez de apenas whatever="true"
, e HTML é a única razão pela qual this="false"
pode significar this = true. :)
Citando a especificação HTML5 e expandindo um pouco no Pekka:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :
O atributo autofocus é um atributo booleano.
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
A presença de um atributo booleano em um elemento representa o valor verdadeiro e a ausência do atributo representa o valor falso.
Se o atributo estiver presente, seu valor deve ser a string vazia ou um valor que não faz distinção entre maiúsculas e minúsculas ASCII para o nome canônico do atributo, sem nenhum espaço em branco à esquerda ou à direita.
Conclusão :
Os itens a seguir são válidos, equivalentes e verdadeiros :
<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />
Os seguintes são inválidos :
<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />
A ausência do atributo é a única sintaxe válida para false :
<input type="text"/>
Recomendação
Se você se preocupa em escrever XHTML válido, use autofocus="autofocus"
, pois <input autofocus>
é inválido e outras alternativas são menos legíveis. Caso <input autofocus>
contrário , use apenas porque é mais curto.
Não , basta especificar o próprio atributo. Era assim também em HTML 4 .
Vários atributos são atributos booleanos . A presença de um atributo booleano em um elemento representa o valor verdadeiro e a ausência do atributo representa o valor falso.
Se o atributo estiver presente, seu valor deve ser a string vazia ou um valor que não faz distinção entre maiúsculas e minúsculas ASCII para o nome canônico do atributo, sem nenhum espaço em branco à esquerda ou à direita.
Exemplo:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>