Mi sembra di ricordare la maggior parte (forse tutti) gli attributi nelle versioni precedenti di HTML (prima di HTML5) che richiedevano attributi per avere valori, come readonly="readonly"
.
È vero per HTML5 e per l' autofocus
attributo?
Mi sembra di ricordare la maggior parte (forse tutti) gli attributi nelle versioni precedenti di HTML (prima di HTML5) che richiedevano attributi per avere valori, come readonly="readonly"
.
È vero per HTML5 e per l' autofocus
attributo?
Risposte:
In HTML, usi attributi booleani con o senza valori come preferisci. Un booleano, per W3C, come l'autofocus può essere scritto così autofocus
o autofocus="autofocus"
o anche autofocus=""
.
Se non vuoi l'autofocus, non scriverlo.
Penso che si sono confusi perché XHTML richiede i valori per tutti gli attributi: attributes="values"
.
Di seguito sono riportate alcune informazioni sull'uso degli attributi booleani in HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute
disabled="disabled"
. La stessa cosa vale per i tag di chiusura. In HTML non tutti i tag devono essere chiusi (es. Br o input) ma poiché XHTML deve essere XML valido, è necessario anche chiudere i tag.
disabled="disabled"
". E SGML è l'unica ragione per cui XHTML ha la silly="silly"
sintassi bool invece che solo whatever="true"
, e HTML è l'unica ragione per cui this="false"
può significare questo = vero. :)
Citando la specifica HTML5 ed espandendo un po 'su Pekka:
http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :
L'attributo autofocus è un attributo booleano.
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
La presenza di un attributo booleano su un elemento rappresenta il valore vero e l'assenza dell'attributo rappresenta il valore falso.
Se l'attributo è presente, il suo valore deve essere una stringa vuota o un valore che sia una corrispondenza ASCII senza distinzione tra maiuscole e minuscole per il nome canonico dell'attributo, senza spazi iniziali o finali.
Conclusione :
I seguenti sono validi, equivalenti e veri :
<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />
I seguenti non sono validi :
<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />
L'assenza dell'attributo è l'unica sintassi valida per false :
<input type="text"/>
Raccomandazione
Se ti interessa scrivere un XHTML valido, usa autofocus="autofocus"
, poiché <input autofocus>
non è valido e altre alternative sono meno leggibili. Altrimenti, usalo <input autofocus>
perché è più corto.
No , è sufficiente specificare l'attributo stesso. Era così anche in HTML 4 .
Un certo numero di attributi sono attributi booleani . La presenza di un attributo booleano su un elemento rappresenta il valore vero e l'assenza dell'attributo rappresenta il valore falso.
Se l'attributo è presente, il suo valore deve essere una stringa vuota o un valore che sia una corrispondenza ASCII senza distinzione tra maiuscole e minuscole per il nome canonico dell'attributo, senza spazi iniziali o finali.
Esempio:
<label><input type=checkbox checked name=cheese disabled> Cheese</label>