我已经在这里和那里看到了很多,但我可以找到任何关于它的描述或文档!
<paper-input-decorator label="Your Name">
<input is="core-input">
</paper-input-decorator>
答案 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