2014-07-24 9 views
8

Okey, so vor kurzem, ich fand dies: https://angularjs.org/sind benutzerdefinierte HTML-Attribute ohne Daten- * Präfix ein gültiges Attribut?

Ich bemerkte, dass sie benutzerdefinierte verwenden Attribut Präfix "ng-"

Von Artikel, wie: http://html5doctor.com/html5-custom-data-attributes/

oder sogar Stackoverflow: https://stackoverflow.com/a/17091848/2803917

Und es gibt viele mehr, die einzige GÜLTIGKEIT (ich spreche nicht über die Tatsache, dass sie sowieso arbeiten) Präfix zu verwenden ist "Daten".

So könnte mir jemand erklären, wie kann es sein, dass diese, Millionen Projekte und Unternehmen, ein ungültiges Präfix für benutzerdefinierte HTML-Element-Attribute verwendet und niemand scheint sich zu kümmern? Oder fehlt mir etwas?

Ich würde wirklich einige Gedanken oder sogar Quellen von Informationen schätzen, nicht nur Texte wie "jeder tut es" und "nicht stören und es verlassen".

+1

Ehrlich aber, was andere Antwort ist da? Benutzerdefinierte Attribute, die nicht über das Präfix data- * verfügen, sind schließlich nicht standardisiert. – BoltClock

+0

Sie sind nicht "nicht gültig" sie sind einfach nicht Standard. – CENT1PEDE

Antwort

5

Benutzerdefinierte Attribute müssen mit data- oder x- beginnen oder sie sind ungültig. Dies kann in zukünftigen Browsern zu Problemen führen, und HTML-Validierer geben an, dass sie ungültig sind.

Siehe: What is the difference between ng-app and data-ng-app?

Und: http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes

+0

Also, ich habe Recht, sie sind doch ungültig, oder? – ExClouds

+0

Ja ............ – Richard

+1

Bitte beachten Sie, dass einige js-Frameworks, die ähnliche Ansätze verwenden - z. Vue js verwenden ihre "v-" Attribute - dynamisch entfernen Sie diese Attribute (naja, konvertieren Sie sie in etwas Nützliches) beim Laden der Seite, bevor alles vom Browser angezeigt wird, so dass das resultierende HTML perfekt gültig ist. Ich denke, Angular macht dasselbe. Browser sollten sich nicht wirklich für HTML interessieren, das nicht aktiv im DOM enthalten ist. – Arthur

Verwandte Themen