In generale, non vi è alcuna differenza tra gli elementi personalizzati e quelli predefiniti. Puoi creare un elemento a tua scelta con document.createElement
e registrarlo con document.registerElement
. Il risultato sarebbe:
console.log(document.createElement('my-button').constructor);
//⇒ function HTMLElement() { [native code] }
console.log(document.registerElement('my-button'));
//⇒ function my-button() { [native code] }
console.log(document.createElement('my-button').constructor);
//⇒ function my-button() { [native code] }
Come si può vedere, una volta registrato, l'elemento viene assegnato con il proprio costruttore. Ciò fornisce ai componenti la capacità di comportarsi secondo le proprie modalità. Ma:
console.log(document.createElement('my-button').__proto__.__proto__);
//⇒ HTMLElement
è ancora un buon vecchio pianura HTMLElement
. Pertanto, le regole per la denominazione degli attributi non sono state modificate.
Si noti che le librerie, come il polimero, potrebbero aggiungere ulteriore gestione degli attributi; quanto sopra è vero solo per i componenti web semplici.
Stai parlando di HTML semantico? –
Sto parlando di HTML5 Web Components. – Ben
Perdonami, non ho capito. +1 –