è autofocus = "autofocus" o autofocus?


87

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' autofocusattributo?


1
possibile duplicato di stackoverflow.com/questions/1033944/… poiché entrambi riguardano attributi booleani (non contrassegnati)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Sono d'accordo che sono simili, ma leggermente diversi poiché chiedono attributi diversi.
Darryl Hein

1
l'autofocus funziona solo. testato in FF, Opera e Chrome ..
Sohail Arif

Risposte:


94

In HTML, usi attributi booleani con o senza valori come preferisci. Un booleano, per W3C, come l'autofocus può essere scritto così autofocuso 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


19
+1 per aver menzionato XHTML. La conformità XML di XHTML è l'unica ragione per cui è mai esistito un file 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.
Tim Büthe

4
"XHTML è l'unico motivo per cui è mai esistito un 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. :)
Sz.

52

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.


1
"Se ti interessa ... XHTML". No. Lascialo morire.
Dem Pilafian

22

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>

10
Ha dato a Tim la risposta accettata ... ha bisogno del rappresentante più di te :)
Darryl Hein
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.