<slot>

Элемент <slot> используется в веб-компонентах и определяет слот (место), куда будет вставлено содержимое компонента при его использовании. Можно использовать атрибут name, чтобы назначить слоту имя и вставлять содержимое в несколько разных мест.

Синтаксис

<slot></slot>

Атрибуты

name
Устанавливает имя слота.

Также для этого элемента доступны универсальные атрибуты.

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>slot</title> <script> customElements.define('my-spoiler', class extends HTMLElement { connectedCallback() { this.attachShadow({mode: 'open'}); this.shadowRoot.append(tmpl.content.cloneNode(true)); this.shadowRoot.querySelector('.spoiler-show').onclick = () => { this.shadowRoot.querySelector('.spoiler-text').classList.toggle('open'); }; } }); </script> </head> <body> <template id="tmpl"> <style> .spoiler-text { color: red; /* Цвет текста */ display: none; /* Скрыть от просмотра */ } .open { display: block; /* Показать текст */ } </style> <div class="spoiler"> <p><button class="spoiler-show">Показать</button></p> <div class="spoiler-text"><slot></slot></div> </div> </template> <p>Осторожно, ниже возможны спойлеры!</p> <my-spoiler>Дарт Вейдер — отец Люка Скайуокера.</my-spoiler> </body> </html>

В данном примере создаётся пользовательский элемент <my-spoiler> для отображения и скрытия спойлеров. С помощью элемента <template> формируется шаблон кода этого элемента, а <slot> указывает, в какое место кода вставить текст спойлера.

Спецификация

Спецификация Статус
HTML Living Standard Живой стандарт

Браузеры

79 53 40 10 63
53 63 41 10

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

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

См. также