Sind leere HTML5-Datenattribute gültig?
Ich würde gerne schreiben ein einfaches jQuery plugin, das zeigt inline-modals unter der angegebenen Elemente. Meine Idee ist für das Skript auto-init basierend auf data-Attribute angegeben, die auf Elemente.
Ein sehr einfaches Beispiel:
<p data-modal-target>Hover over me for an inline modal!</p>
<div data-modal-content data-modal-align="right" data-modal-trigger="hover" data-modal-offset="10px"><!-- any desired syntax can go here --></div>
Ich Frage mich nur, ob data-modal-target
im obigen Beispiel ist gültig, oder muss es data-modal-target="true"
? Ich kümmern sich nicht darum, etwas crappier als IE9 etc, meine einzige Anforderung ist, dass es gültig HTML5.
InformationsquelleAutor der Frage Adam | 2012-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, durchaus gültig. In deinem Fall
data-modal-target
darstellen würde ein boolean-Attribut:InformationsquelleAutor der Antwort Lloyd
Benutzerdefinierte Daten-Attribute-Spezifikation nicht erwähnt, keine änderungen an leeren Attribute handling, so die Allgemeinen Regeln über die leere Attribute auch hier gilt:
Also dürfen Sie verwenden leere benutzerdefinierte Daten-Attribute, sondern eine spezielle Handhabung erforderlich, um Sie als boolean.
Wenn Sie Zugriff auf das Attribut durch
element.dataset
:""
.undefined
.Daher, Sie können nicht nur überprüfen, wie
if (element.dataset.myattr)
denn es wird immerfalse
.Können und sollten Sie check boolean Attribute wie
if (element.dataset.myattr !== undefined)
.Lloyd ' s Antwort ist falsch. Er erwähnt die Verbindung zu boolescher Attribute microsyntax, aber
data-*
Attribute nicht angegeben sind als boolean in spec.InformationsquelleAutor der Antwort user
Ja, es ist gültige syntax weglassen-Wert für ein benutzerdefiniertes Attribut data.
"Attribute angegeben werden können, auf vier verschiedene weisen:
Leere Attribut-syntax
Nur das Attribut name. Der Wert wird implizit ein leerer string.
[...]"
https://developers.whatwg.org/syntax.html#attributes-0
InformationsquelleAutor der Antwort eew
Auf der einen Seite, es übergibt der validator 16.5.7 https://validator.w3.org/nu/#textarea :
Auf der anderen, die HTML5 nicht sagen, in der Spezifikation von
data-
Attribute, Sie sind boolean: https://www.w3.org/TR/html5/dom.html#custom-data-attributewährend es sagt, dass ganz klar für andere booleschen Attributen wiechecked
https://www.w3.org/TR/html5/forms.html#attr-input-checkedInformationsquelleAutor der Antwort Ciro Santilli 新疆改造中心 六四事件 法轮功