w3c标准 H5规范中规定:自定义元素必须至少包含一个连字符,即最简形式也要这样a-b
比如:
<hello></hello>这样会出错
<hell-o></hell-o>这样才对
下边是demo代码
index.html:
<!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="import" href="demo.html"> <title>html自定义标签</title> </head> <body> <hell-o></hell-o> <h1>abc</h1> </body> </html>
demo.html:
<!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>demo</title> </head> <body> <template id="hello"> <style type="text/css"> h1{color:red;} </style> <h1>hello</h1> </template> <script type="text/javascript"> var indexDoc=document, helloDoc=(indexDoc._currentScript || indexDoc.currentScript).ownerDocument, tmpl=helloDoc.querySelector('#hello'), HelloProto=Object.create(HTMLElement.prototype); HelloProto.createdCallback=function(){ var roots=this.createShadowRoot(); roots.appendChild(indexDoc.importNode(tmpl.content,true)); }; var Hello=indexDoc.registerElement('hell-o',{ prototype:HelloProto }); </script> </body> </html>