Подтвердить что ты не робот

Что такое атрибут "есть"?

Я видел это много здесь и там, но я мог найти любое описание или документацию об этом!

Пример:

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

Ответ 1

В 2017 году:

В HTML нет атрибута is.

Это предлагаемое расширение, которое появляется в Спецификация пользовательских элементов (которая была разработана из спецификации Polymer, упомянутой ниже).

Это позволяет вам сказать, что существующий, стандартный элемент действительно является настраиваемым элементом.

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

..., что обеспечивает обратную совместимость. Если пользовательские элементы не поддерживаются браузером (спецификация по-прежнему черновик и очень ограниченная поддержка браузера) то он вернется к по умолчанию.


В 2014 году:

Это не HTML. Это атрибут expando для Полимерные пользовательские элементы.

Если вы использовали расширения для создания элемента Polymer, который происходит из существующего элемента DOM (что-то, кроме HTMLElement), используйте синтаксис is

Ответ 3

Ключевое слово is является частью спецификации W3C Draft для создания пользовательских элементов 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>.

Это часть спецификации W3C для пользовательских элементов веб-компонентов: http://www.w3.org/TR/custom-elements/#type-extension-semantics

Ответ 4

Это часть веб-компоненты для пользовательских элементов. Так что это HTML.

Рамки, такие как Vue.js, также поддерживают атрибут is в соответствии со стандартом веб-компонентов.