2013-03-06 2 views

Antwort

29

Die HTML5-Spezifikation ermöglicht eine beliebige Attribute, solange sie mit Daten- wie so voran sind:

<div data-myattribute=""></div> 

Während dies wäre ungültig HTML5 sein:

<div myattrbute=""></div> 

For more information on data- attributes, have a look here.

Was "x-" Attribute angeht, denke ich, dass Sie "x:" Attribute und Elemente meinen, die spezifisch für die XHTML Validierung sind ...

Um auf diese zu erweitern, wenn Sie waren (aus irgendeinem Grund) XHTML verwenden, können Sie festlegen, benutzerdefinierte Attribute mit Namensräume wie so (und ich zusammenfassend nur das Wesentliche hier):

<html xmlns:x="http://sample.com/mynamespace"> 
<body> 
    <div x:whatever=""></div> 
    <x:mytag></x:mytag> 
</body> 
</html> 

wo Die URL in xmlns dient nur dazu, Konflikte zwischen ähnlichen Elementen zu vermeiden. Außerdem kann eine DTD für die benutzerdefinierten Elemente und Attribute für Validierungszwecke als Teil Ihrer DOCTYPE-Deklaration bereitgestellt werden.

* Verhalten in Browsern wird mit diesem Ansatz Xmlns variieren.

Zusammenfassend jedoch: Mit den meisten Browsern, die in den letzten drei Jahren veröffentlicht wurden, oder IE8 + müssen Sie sich um keine dieser Dinge kümmern. Nur in ganz bestimmten Situationen wird es dich wirklich interessieren.

+0

Das Dokument der OP-Links sagt, dass 'data-myattribute' und' x-myattribute' HTML-Validator-kompatibel sind. –

+1

Nun, ich bin mir nicht sicher, welcher Validator der Autor des Dokuments verwendet ... aber x-Attribut ist derzeit [nicht in der Spezifikation] (http://www.w3.org/html/wg/drafts/html/master/ single-page.html). –

+2

Fair genug, ich habe versucht, mehr Informationen über die 'x-' zu finden, aber wie Sie sich vorstellen können, ist der Begriff unmöglich für Google. Es taucht hauptsächlich in experimentellen Browserfunktionen wie 'x-moz-errormessage' und' x-webkit-rede' auf. –

18

Von der HTML5-Spezifikation: http://www.w3.org/html/wg/drafts/html/master/single-page.html

Attributnamen beginnend mit den beiden Zeichen „x-“ für User-Agent reserviert werden und sind garantiert nie formell die HTML-Sprache hinzugefügt werden.

auch:

Für Markup-Level-Funktionen, die mit the HTML syntax zur Verwendung bestimmt sind Erweiterungen sollten neue Attribute der Form „x-vendor-feature“ begrenzt werden, wo Anbieter eine kurze ist Zeichenfolge Dieser identifiziert den Lieferanten, der für die Erweiterung verantwortlich ist, und das Merkmal ist der Name des Features. Neue Elementnamen sollten nicht erstellt werden. Die Verwendung von Attributen für solche -Erweiterungen ermöglicht es ausschließlich, dass Erweiterungen von mehreren Anbietern auf dem gleichen Element koexistieren, was mit Elementen nicht möglich wäre. Mit dem Formular "x-vendor-feature" können Erweiterungen vorgenommen werden, ohne dass das Risiko künftiger Ergänzungen der Spezifikation besteht.

+2

Ich würde so weit gehen zu sagen, dass das "x-" Präfix der richtige Weg ist Verwenden Sie eckig, wenn Sie das Markup validieren möchten. Es sind wirklich Daten. Von W3C Entwurf: "Für Markup-Level-Features ... Erweiterungen sollten auf neue Attribute des Formulars 'x-vendor-feature'" Ng Attribute mit dem X-Präfix passen diese Beschreibung schön. –

+2

+1. Betrachtet der Wortlaut hier eher Browser-Anbieter als Bibliothek/Frameworks? Unabhängig davon fühlt sich das für mich korrekter an als die Verwendung eines Datenpräfixes, da es spezifischer für das Framework ist als die Daten, die Sie anhängen möchten (und auch dem x-vendor Präfix des Entwurfs folgen). – wbyoung

+1

Ich stimme mit wbyoung überein, nach dem Buchstaben des Gesetzes x- ist für den Browser reserviert, keine Erweiterungen oder Frameworks. Ich denke aber auch, dass sie das Gesetz ändern sollten, um diese Verwendung zu berücksichtigen, da "x-ng-feature" wie eine semantisch korrekte Konvention erscheint. – misteraidan

Verwandte Themen