ist es Autofokus = "Autofokus" oder Autofokus?

87

Ich erinnere mich an die meisten (möglicherweise alle) Attribute in früheren HTML-Versionen (vor HTML5), für die Attribute erforderlich waren, um Werte wie z readonly="readonly".

Gilt das für HTML5 und das autofocusAttribut?

Darryl Hein
quelle
1
Mögliches Duplikat von stackoverflow.com/questions/1033944/…, da es sich bei beiden um boolesche Attribute handelt (nicht markiert)
Ciro Santilli 22 冠状 病 六四 事件 法轮功
Ich würde zustimmen, dass sie ähnlich, aber leicht unterschiedlich sind, da sie nach unterschiedlichen Attributen fragen.
Darryl Hein
1
Autofokus funktioniert nur. testete es in FF, Opera und Chrome ..
Sohail Arif

Antworten:

93

In HTML verwenden Sie boolesche Attribute mit oder ohne Werte, wie Sie möchten. Ein boolean, für W3C, wie Autofokus kann so geschrieben werden , autofocusoder autofocus="autofocus"oder auch autofocus="".

Wenn Sie keinen Autofokus möchten, schreiben Sie ihn einfach nicht.

Ich denke, Sie sind verwirrt, weil XHTML Werte für alle Attribute benötigt: attributes="values" .

Hier finden Sie einige Informationen zur Verwendung von booleschen Attributen in HTML: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#boolean-attribute

Tim
quelle
19
+1 für die Erwähnung von XHTML. Die XML-Konformität von XHTML ist der einzige Grund, warum es jemals eine gegeben hat disabled="disabled". Das gleiche gilt für das Schließen von Tags. In HTML muss nicht jedes Tag geschlossen werden (z. B. br oder input), aber da XHTML gültiges XML sein muss, müssen Sie auch Tags schließen.
Tim Büthe
4
"XHTML ist der einzige Grund, warum es jemals einen gegeben hat disabled="disabled"". Und SGML ist der einzige Grund, warum XHTML die silly="silly"Bool-Syntax anstelle von nur hat whatever="true", und HTML ist der einzige Grund, warum this="false"dies bedeuten kann = wahr. :)
Gr.
51

Zitieren Sie die HTML5-Spezifikation und erweitern Sie Pekka ein wenig:

http://www.w3.org/TR/html5/forms.html#autofocusing-a-form-control:-the-autofocus-attribute :

Das Autofokus-Attribut ist ein boolesches Attribut.

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :

Das Vorhandensein eines booleschen Attributs für ein Element repräsentiert den wahren Wert, und das Fehlen des Attributs repräsentiert den falschen Wert.

Wenn das Attribut vorhanden ist, muss sein Wert entweder die leere Zeichenfolge oder ein Wert sein, bei dem der kanonische Name des Attributs nicht zwischen Groß- und Kleinschreibung unterschieden wird, ohne führende oder nachfolgende Leerzeichen.

Fazit :

Folgendes ist gültig, gleichwertig und wahr :

<input type="text" autofocus />
<input type="text" autofocus="" />
<input type="text" autofocus="autofocus" />
<input type="text" autofocus="AuToFoCuS" />

Folgendes ist ungültig :

<input type="text" autofocus="0" />
<input type="text" autofocus="1" />
<input type="text" autofocus="false" />
<input type="text" autofocus="true" />

Das Fehlen des Attributs ist die einzig gültige Syntax für false :

<input type="text"/>

Empfehlung

Wenn Sie gültiges XHTML schreiben möchten, verwenden Sie autofocus="autofocus", da <input autofocus>es ungültig ist und andere Alternativen weniger lesbar sind. Andernfalls verwenden <input autofocus>Sie es einfach, da es kürzer ist.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
quelle
1
"Wenn Sie sich für ... XHTML interessieren". Nee. Lass es sterben.
Dem Pilafian
22

Nein , es reicht aus, das Attribut selbst anzugeben. So war es auch in HTML 4 .

Eine Reihe von Attributen sind boolesche Attribute . Das Vorhandensein eines booleschen Attributs für ein Element repräsentiert den wahren Wert, und das Fehlen des Attributs repräsentiert den falschen Wert.

Wenn das Attribut vorhanden ist, muss sein Wert entweder die leere Zeichenfolge oder ein Wert sein, bei dem der kanonische Name des Attributs nicht zwischen Groß- und Kleinschreibung unterschieden wird, ohne führende oder nachfolgende Leerzeichen.

Beispiel:

<label><input type=checkbox checked name=cheese disabled> Cheese</label>
Pekka
quelle
10
Hat Tim die akzeptierte Antwort gegeben ... er braucht den Repräsentanten mehr als Sie :)
Darryl Hein