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".
Eu concordaria que eles são semelhantes, mas ligeiramente diferentes, já que estão perguntando sobre atributos diferentes.
Darryl Hein de
1
o foco automático só funciona. testei no FF, Opera e Chrome ..
Sohail Arif
Respostas:
94
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 autofocusou 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".
+1 por mencionar XHTML. A conformidade XML do XHTML é a única razão pela qual já existiu um 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.
Tim Büthe
4
"XHTML é a única razão pela qual já existiu um 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. :)
Sz.
52
Citando a especificação HTML5 e expandindo um pouco no Pekka:
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 :
A ausência do atributo é a única sintaxe válida para false :
<inputtype="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.
"Se você se preocupa com ... XHTML". Não. Deixe-o morrer.
Dem Pilafian
22
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.
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
ouautofocus="autofocus"
ou tambémautofocus=""
.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
fonte
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 asilly="silly"
sintaxe bool em vez de apenaswhatever="true"
, e HTML é a única razão pela qualthis="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 :
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
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.fonte
Não , basta especificar o próprio atributo. Era assim também em HTML 4 .
Exemplo:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>
fonte