如何为html创建自定义标签

Akt*_*eus 44 html tags

我想学习如何为html创建自定义标签,具有特殊属性和行为,如果有人可以给出建议我会非常感激.

Jed*_*rke 36

HTML5Rocks.com上有一篇关于如何使用自定义元素的有趣且深入的文章:自定义元素:在HTML中定义新元素

以下是有关如何执行此操作的文章的摘录.

实例化元素

创建元素的常用技术仍适用于自定义元素.与任何标准元素一样,它们可以用HTML声明,也可以使用JavaScript在DOM中创建.实例化自定义标签

声明他们:

<x-foo></x-foo>
Run Code Online (Sandbox Code Playgroud)

在JS中创建DOM:

var xFoo = document.createElement('x-foo');
xFoo.addEventListener('click', function(e) {
  alert('Thanks!');
});
Run Code Online (Sandbox Code Playgroud)

使用new运算符:

var xFoo = new XFoo();
document.body.appendChild(xFoo);
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这是在标准和浏览器支持方面做到这一点的正确方法.`foo-bar`应该总是用于自定义标签名称(连字符需要,`x-`是常见的),`data-foo`应该总是用于自定义属性(`data -` required).浏览器可能会也可能不会像`foo`那样处理任意标签.通常它们不会导致错误,但它完全不标准,并且在某些情况下可能会导致问题.另请注意,非HTML5内容在执行此操作时应使用非严格的doctype.JS可以用来限制"数据 - "属性限制,但它很笨重. (7认同)
  • 自定义元素v1:可重用Web组件的更新规范https://developers.google.com/web/fundamentals/getting-started/primers/customelements (2认同)

sdl*_*rhc 31

根据"特殊属性和行为"的含义,您可以立即"创建"自定义HTML标记.以下显示在所有浏览器中,甚至可以使用各种JavaScript方法:

<my-book data-pages="400" data-author="Nietzsche">The Wanderer and His Shadow</my-book>
Run Code Online (Sandbox Code Playgroud)

你必须记住几件事:

  1. 连字!自定义元素应包括至少一个-my-bookapp-menuheader-title等只是,不要使用data-*,因为它保留数据-属性.

  2. inline默认情况下,所有自定义元素都显示.但是,您可以使用CSS或JavaScript更改它.

  3. 除非您首先使用JavaScript"创建"它们,否则Internet Explorer无法识别任何这些元素:

    document.createElement('my-book');
    
    Run Code Online (Sandbox Code Playgroud)

因此,您必须先执行此操作,然后才能在CSS,HTML或JS中使用它们.

  • 我打算为js-disabled用户隐藏一个<hasjs>标签,但现在我必须先用JavaScript注册它.我猜我必须坚持使用<div class ="hasjs">. (5认同)
  • 最好包含这个答案的一些参考资料。 (4认同)
  • @apokaliptis 对于 js 禁用问题,也许您可​​以使用 &lt;noscript&gt;您的普通 html 对于没有启用 js 的浏览器&lt;/noscript&gt; (3认同)

tyl*_*147 13

你真正需要做的就是为那个标签定义css

例:

mytag {
font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

现在mytag是你自己的大胆:

<mytag>This text is in bold</mytag>
Run Code Online (Sandbox Code Playgroud)

  • 当然这适用于chrome 47,但它不建议,因为它只是无效的HTML.Chrome可以处理各种无效代码,虽然它可以*工作*,但你真的不应该过于依赖它,因为它在其他浏览器中的行为可能完全是任意的. (3认同)

csu*_*cat 8

现在有一个新兴的W3C标准规范,称为Web组件自定义元素,它使开发人员能够创建自己的自定义HTML元素并使用浏览器解析器注册它们.Mozilla开发了一个名为X-Tag的库,它使创建和使用自定义元素的过程非常简单,请查看:X-Tags.org