<slot> HTML-элемент slot веб-компонента
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Элемент <slot> HTML — это заполнитель внутри веб-компонента, который можно заполнить собственной разметкой при использовании компонента. Это позволяет создавать отдельные деревья DOM и отображать их вместе.
Слоты могут содержать обычный текст, другие элементы HTML или другие веб-компоненты. Слот также может содержать содержимое по умолчанию, которое отображается, если при использовании веб-компонента слоту не назначено другое содержимое.
Атрибуты
Этот элемент включает глобальные атрибуты.
name-
Имя слота. Именованный слот — это элемент
<slot>с атрибутомname, а безымянный слот не имеет атрибутаname, и по умолчанию его имя представляет собой пустую строку.Если в корне теневого DOM используется назначение именованных слотов, дочерние элементы верхнего уровня хоста отображаются в слотах, имя которых совпадает со значением их атрибута
slot. Имена слотов в одном корне теневого DOM должны быть уникальными: если у вас есть два слота с одинаковым именем, все элементы с соответствующим атрибутомslotотображаются в первом слоте. Все дочерние элементы верхнего уровня, у которых нет атрибутаslot, отображаются в первом безымянном элементе<slot>, который называется слотом по умолчанию. Атрибутnameне влияет на результат, если в корне теневого DOM используется ручное назначение слотов.Дополнительную информацию см. в разделе
shadowrootslotassignmentоб элементе<template>и в разделеElement.attachShadow().
Примеры
>Основное использование
В этом HTML показано, как можно объявить несколько именованных слотов в элементе <template>. Обратите внимание, что эти слоты используются как слоты, только когда шаблон применяется внутри корня теневого DOM.
<template id="element-details-template">
<style>
details {
font-family: "Open Sans Light", "Helvetica", "Arial", sans-serif;
}
.name {
font-weight: bold;
color: #217ac0;
font-size: 120%;
}
h4 {
margin: 10px 0 -8px 0;
background: #217ac0;
color: white;
padding: 2px 6px;
border: 1px solid #cee9f9;
border-radius: 4px;
}
.attributes {
margin-left: 22px;
font-size: 90%;
}
.attributes p {
margin-left: 16px;
font-style: italic;
}
</style>
<details>
<summary>
<code class="name">
<<slot name="element-name">NEED NAME</slot>>
</code>
<span class="desc"><slot name="description">NEED DESCRIPTION</slot></span>
</summary>
<div class="attributes">
<h4>Attributes</h4>
<slot name="attributes"><p>None</p></slot>
</div>
</details>
<hr />
</template>
Примечание: Полный пример можно посмотреть в действии в репозитории element-details (см. работающую версию). Кроме того, объяснение доступно в разделе Использование шаблонов и слотов.
Техническая сводка
| Категории содержимого | Потоковое содержимое, строчное содержимое |
|---|---|
| Допустимое содержимое | Прозрачное |
| События | slotchange |
| Опускание тегов | Не допускается: обязательны и открывающий, и закрывающий теги. |
| Допустимые родительские элементы | Любой элемент, допускающий строчное содержимое |
| Неявная роль ARIA | Нет соответствующей роли |
| Допустимые роли ARIA | Не допускается ни одна роль role |
| Интерфейс DOM | HTMLSlotElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-slot-element> |
| DOM> # shadow-tree-slots> |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
slot |
53 | 79 | 63 | 40 | 10 | 53 | 63 | 41 | 10 | 6.0 | 53 | 10 |
name |
53 | 79 | 63 | 40 | 10 | 53 | 63 | 41 | 10 | 6.0 | 53 | 10 |
См. также
- Элемент HTML
<template> - Атрибут HTML
slot - Псевдоэлемент CSS
::slotted - Псевдокласс CSS
:has-slotted - Модуль областей видимости CSS
- Использование шаблонов и слотов
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/slot