2013-03-06 3 views

risposta

29

Le specifiche HTML5 permette di attributi arbitrari fintanto che stanno prefisso dati- in questo modo:

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

considerando che il presente sarebbe HTML5 non valida:

<div myattrbute=""></div> 

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

Per quanto riguarda gli attributi "x-", penso che intendiate "x:" attributi ed elementi, che sono specifici per la validazione XHTML ...

Per espandere su questo, se si dovesse (per qualche motivo) stia usando XHTML, è possibile definire gli attributi personalizzati con namespacing in questo modo (e io sono solo che riassume l'essenza qui):

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

dove l'URL in xmlns serve solo a evitare conflitti tra elementi simili. Inoltre, una DTD per gli elementi e gli attributi personalizzati potrebbe essere fornita a scopo di convalida come parte della dichiarazione DOCTYPE.

* il comportamento nei browser sta per variare con questo approccio xmlns.

In sintesi, però: Con la maggior parte dei browser rilasciati negli ultimi tre anni, o IE8 + non dovrete preoccuparvi di nessuna di queste cose. Solo in situazioni molto specifiche ti interesserà davvero.

+0

Nel documento i collegamenti OP dicono che 'data-myattribute' e' x-myattribute' sono conformi al validatore HTML. –

+1

Beh, non sono sicuro di quale validatore usi l'autore del documento ... ma l'attributo x è attualmente [non nelle specifiche] (http://www.w3.org/html/wg/drafts/html/master/ singolo-page.html). –

+2

Abbastanza corretto, ho provato a trovare maggiori informazioni su 'x-' ma come puoi immaginare il termine è impossibile per Google. Si presenta principalmente nelle funzionalità sperimentali del browser come 'x-moz-errormessage' e' x-webkit-speech'. –

18

Dalla specifiche HTML5: http://www.w3.org/html/wg/drafts/html/master/single-page.html

nomi degli attributi che iniziano con i due personaggi "X-" sono riservati per l'uso user agent e sono garantiti per non essere formalmente aggiunto linguaggio HTML.

anche:

Per le funzioni di livello markup che sono destinati all'uso con the HTML syntax, estensioni dovrebbero essere limitati a nuovi attributi della forma "x-vendor-feature", dove venditore è una breve stringa identifica il fornitore responsabile dell'estensione e la funzionalità è il nome della funzione. I nuovi nomi di elementi non dovrebbero essere creati. L'utilizzo di attributi per tali estensioni consente esclusivamente la coesistenza di estensioni di più fornitori sullo stesso elemento, , che non sarebbe possibile con gli elementi. L'utilizzo del modulo "x-vendor-feature" consente di estendere le estensioni senza il rischio di conflitto con future aggiunte alle specifiche.

+2

Mi spingerei a dire che il prefisso "x-" è il modo CORRETTO usare angolare se si desidera convalidare il markup. Sono davvero dati. Dal progetto W3C: "Per le funzionalità a livello di markup ... le estensioni dovrebbero essere limitate ai nuovi attributi del modulo 'x-vendor-feature'" Gli attributi Ng con il prefisso x si adattano splendidamente a questa descrizione. –

+2

+1. La formulazione qui sembra riferirsi ai venditori di browser piuttosto che alle librerie/quadri? Indipendentemente da ciò, questo mi sembra più corretto rispetto all'uso di un prefisso dati in quanto è più specifico del framework rispetto ai bit di dati che si desidera collegare (e segue anche il prefisso x-vendor della bozza). – wbyoung

+1

Sono d'accordo con wbyoung, per la lettera della legge x- è riservato per il browser, non per estensioni o framework. Tuttavia, penso anche che dovrebbero emendare la legge per includere questo utilizzo, in quanto 'x-ng-feature' appare come una convenzione semanticamente corretta. – misteraidan