Атрибут is в HTML

285
29 июля 2017, 03:46

Недавно читал статьи по созданию собственных тегов в HTML и натолкнулся на неизвестный мне атрибут is. Статья: https://learn.javascript.ru/...

Зачем этот атрибут? Можно ли его использовать, к примеру, для вставки иконок (<i is="icon">..</i>)? Насколько он валиден в старых браузерах?

Answer 1

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" });

Это ссылается на JavaScript класс PlasticButton, который выглядит примерно так:

class PlasticButton extends HTMLButtonElement {
  constructor() {
    super();
    this.addEventListener("click", () => {
      // Нарисуем некоторые причудливые анимационные эффекты!
    });
  }
}

Было бы здорово, если бы вы могли написать <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

перевод ответа @DeanMoses

READ ALSO
Отображение фона на планшете

Отображение фона на планшете

Для iPad в вертикальной ориентации сжимается фон (исходное изображение - https://prntsc/g1dlub), браузер chrome

204
Дублирование проверки на null

Дублирование проверки на null

Один из методов бизнес-логики начинается с кода валидации:

303
NAudio 1.8 Запись и воспроизведение звука

NAudio 1.8 Запись и воспроизведение звука

Каким образом я могу вести бесконечную запись? Вот устанавливаю (объясните ещё пожалуйста, зачем) BufferMilliseconds на значение времени записиЕсли...

420