如何为html创build自定义标签
我想了解如何为html创build自定义标签,如果有人能给我链接或build议,我将是最感激的。
如果你能把我redirect到“傻瓜”教程会更好。
HTML5Rocks.com提供了一篇有趣的深度文章,介绍如何使用自定义元素: 自定义元素:在HTML中定义新元素
以下是关于如何做的文章摘录。
实例化元素
创build元素的常用技巧仍然适用于自定义元素。 与任何标准元素一样,它们可以使用JavaScript在HTML中声明或在DOM中创build。 实例化自定义标签
声明他们:
<x-foo></x-foo>
在JS中创buildDOM:
var xFoo = document.createElement('x-foo'); xFoo.addEventListener('click', function(e) { alert('Thanks!'); });
使用新的操作符:
var xFoo = new XFoo(); document.body.appendChild(xFoo);
根据“特殊属性和行为”的含义,您可以立即“创build”自定义HTML标记。 以下内容显示在所有浏览器中,甚至可以使用各种JavaScript方法:
<my-book data-pages="400" data-author="Nietzsche">The Wanderer and His Shadow</my-book>
有几件事你必须牢记:
-
连字 ! 自定义元素应该至less包含一个
-
像my-book
或app-menu
或header-title
等。只是,不要使用data-*
因为它是为数据属性保留的。 -
所有的自定义元素默认都有
inline
的显示。 不过,你可以用CSS或者JavaScript来改变它。 -
除非您先使用JavaScript“创build”它们,否则Internet Explorer无法识别这些元素:
document.createElement('my-book');
所以你必须这样做才能在CSS,HTML或JS中使用它们。
你真的必须做的是定义该标签的CSS
例:
mytag { font-weight: bold; }
现在这个mytag是你自己的大胆:
<mytag>This text is in bold</mytag>
现在有一个新兴的W3标准规范,称为Web组件自定义元素 ,使开发人员能够创build自己的自定义HTML元素并将其注册到浏览器分析器。 Mozilla开发了一个名为X-Tag的库,它使得创build和使用自定义元素的过程变得非常简单,请查看: X-Tags.org
您可以使用以下步骤创build自定义的html标签:
步骤1-注册一个新元素。 自定义元素是使用document.registerElement()创build的:
var XFoo = document.registerElement('x-foo', { prototype: Object.create(HTMLElement.prototype) });
registerElement中的第二个参数是描述元素原型的可选对象。
步骤2 – 实例化自定义标签有几种方法:声明它们:
<x-foo></x-foo>
在JS中创buildDOM:
var xFoo = document.createElement('x-foo'); xFoo.addEventListener('click', function(e) { alert('Thanks!'); });
使用新的操作符:
var xFoo = new XFoo();
步骤3-将新创build的元素附加到文档
document.body.appendChild(new XFoo());
完整的例子:
var XFooProto = Object.create(HTMLElement.prototype); // 1. Give x-foo a foo() method. XFooProto.foo = function() { alert('foo() called'); }; // 2. Define a property read-only "bar". Object.defineProperty(XFooProto, "bar", {value: 5}); // 3. Register x-foo's definition. var XFoo = document.registerElement('x-foo', {prototype: XFooProto}); // 4. Instantiate an x-foo. var xfoo = document.createElement('x-foo'); // 5. Add it to the page. document.body.appendChild(xfoo);
还有一个版本,只在Chrome 54和Opera支持。
例:
class BasicElement extends HTMLElement { connectedCallback() { this.textContent = 'Just a basic custom element.'; } } customElements.define('basic-element', BasicElement);
你可以在这里了解更多
你可以使用javascript: document.createElement('element')