什么是HTML"是"属性?

时间:2014-12-11 23:34:59

标签: html html5 dom

我已经在这里和那里看到了很多,但我可以找到任何关于它的描述或文档!

Example:

<paper-input-decorator label="Your Name">
    <input is="core-input">
</paper-input-decorator>

5 个答案:

答案 0 :(得分:22)

它是Web Components'自定义元素的W3C草案规范的一部分。

最新工作草案:http://www.w3.org/TR/custom-elements/#type-extension-semantics

最新编辑的草稿:http://w3c.github.io/webcomponents/spec/custom/#type-extension-example

答案 1 :(得分:10)

2017年:

HTML中没有is属性。

这是一个建议的扩展,出现在Custom Elements specification(从下面提到的Polymer规范演变而来)。

它允许您说现有的标准元素实际上是一个自定义元素。

<button is="fancy-button" disabled>Fancy button!</button>

...允许向后兼容。如果浏览器不支持自定义元素(规范仍然是草稿且有very limited browser support),那么它将回退到默认行为。


2014年:

不是HTML。它是Polymer custom elements的expando属性。

  

如果您使用extends来创建派生自现有DOM元素(不是HTMLElement)的Polymer元素,请使用is语法

答案 2 :(得分:8)

is关键字是W3C草案规范的一部分,用于创建具有自定义行为的自定义HTML元素。

具体而言,在扩展is<input><button>等内置元素时会使用<table>。例如,您可以使用plastic-button元素扩展<button>以在单击时提供一些奇特的动画。

您可以将按钮添加到页面中,如下所示:

<button is="plastic-button">Click Me!</button>

在执行此操作之前,您需要将plastic-button注册为自定义HTML元素,如下所示:

customElements.define("plastic-button", PlasticButton, { extends: "button" });

这引用了一个PlasticButton Javascript类,它看起来像这样:

class PlasticButton extends HTMLButtonElement {
  constructor() {
    super();

    this.addEventListener("click", () => {
      // Draw some fancy animation effects!
    });
  }
}

如果您可以说<plastic-button>Click Me!</plastic-button>而不是<button is="plastic-button">Click Me!</button>,那就太好了,但这会创建一个没有特殊行为的HTMLElement。

如果您没有扩展内置HTML元素(如<button>)而是创建扩展通用HTMLElement的新元素,那么可以使用<plastic-button>语法。但是你不会得到任何<button>的行为。

这是Web组件自定义元素的W3C草案规范的一部分: http://www.w3.org/TR/custom-elements/#type-extension-semantics

答案 3 :(得分:0)

这是自定义元素的web components规范的一部分。所以这是HTML。

Vue.js等框架也支持符合网络组件标准的is属性。

答案 4 :(得分:0)

您使用is属性标记自定义内置元素,这是扩展内置元素的自定义元素

  

自定义元素有两种类型:

     

自治的自定义元素是独立的-它们不继承自标准HTML元素。您可以通过将它们逐字地写为HTML元素在页面上使用它们。例如<popup-info>document.createElement("popup-info")

     

自定义的内置元素从基本HTML元素继承。要创建其中之一,您必须指定它们扩展的元素(如上例所示),并且通过写出基本元素但在is属性中指定自定义元素的名称来使用它们(或财产)。例如<p is="word-count">document.createElement("p", { is: "word-count" })

     

https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements