什么是HTML;是";属性

什么是HTML;是";属性,html,dom,Html,Dom,我已经在这里和那里看到了很多,但我可以找到任何关于它的描述或文档 2020年: is属性现在是中HTML规范的一部分 它遵循聚合物规范,并在上为开发人员记录 唯一的Edge尚未更新以包含此规范,但它将在2020年推出新的基于铬的实现,其可用性可能会有所提高 2017年: HTML中没有is属性 这是一个建议的扩展,出现在中(从下面提到的聚合物规范演变而来) 它允许您说现有的标准元素实际上是一个自定义元素 <button is="fancy-button" disabled>Fa

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


2020年:

is
属性现在是中HTML规范的一部分

它遵循聚合物规范,并在上为开发人员记录

唯一的Edge尚未更新以包含此规范,但它将在2020年推出新的基于铬的实现,其可用性可能会有所提高


2017年:

HTML中没有
is
属性

这是一个建议的扩展,出现在中(从下面提到的聚合物规范演变而来)

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

<button is="fancy-button" disabled>Fancy button!</button>
别致的按钮!
…允许向后兼容。如果浏览器不支持自定义元素(规范仍然是一个草稿,并且已经),则它将返回默认行为


2014年:

它不是HTML。它是的expando属性

如果使用extends创建从现有DOM元素派生的聚合元素(HtmleElement除外),请使用
is
语法


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

最新工作草案:

最新编辑草稿:

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


类似这样的框架还支持符合web组件标准的
is
atribute。

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

具体来说,
is
用于扩展内置元素,如
。例如,您可以有一个
塑料按钮
元素,它扩展了
,在单击时提供一些奇特的动画

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

<button is="plastic-button">Click Me!</button>
customElements.define("plastic-button", PlasticButton, { extends: "button" });
这引用了一个
PlasticButton
Javascript类,它看起来像这样:

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

    this.addEventListener("click", () => {
      // Draw some fancy animation effects!
    });
  }
}
如果你能说
点击我就好了而不是
单击我,但这将创建一个没有特殊行为的HTMLElement

如果您没有扩展像
这样的内置HTML元素,而是创建一个扩展通用HTML元素的新元素,那么可以使用
语法。但是你不会得到任何
的行为

这是W3C Web组件自定义元素规范草案的一部分:

您可以使用
is
属性标记自定义内置元素,即扩展内置元素的自定义元素

有两种类型的自定义元素:

自治自定义元素是独立的-它们不从标准HTML元素继承。您可以通过将它们作为HTML元素逐字写出来在页面上使用它们。例如
,或
document.createElement(“弹出信息”)

自定义内置元素继承自基本HTML元素。要创建其中一个元素,您必须指定它们扩展的元素(如上面的示例所示),并通过写出基本元素来使用它们,但在
is
属性(或属性)中指定自定义元素的名称。例如

,或
document.createElement(“p”,{is:“word count”})


2020年,Safari:中仍然不支持
is
属性,这应该是可接受的响应!
class PlasticButton extends HTMLButtonElement {
  constructor() {
    super();

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