<slot>: The Web Component Slot element #
::: section-content
The <slot>
HTML element—part of the
Web
Components
technology suite—is a placeholder inside a web component that you can
fill with your own markup, which lets you create separate DOM trees and
present them together.
:::
Attributes #
::: section-content This element includes the global attributes.
nameThe slot's name.
A named slot is a
<slot>element with anameattribute. :::
Examples #
::: section-content ::: code-example [html]{.language-name}
<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>
</details>
<hr />
</template>
:::
::: {#sect1 .notecard .note} Note: You can see this complete example in action at element-details{target="_blank"} (see it running live{target="_blank"}). In addition, you can find an explanation at Using templates and slots. ::: :::
Technical summary #
::: section-content
| Content categories | Flow content, phrasing content |
|---|---|
| Permitted content | Transparent |
| Events | slotchange |
| Tag omission | None, both the starting and ending tag are mandatory. |
| Permitted parents | Any element that accepts phrasing content |
| Implicit ARIA role | No corresponding role |
| Permitted ARIA roles | No role permitted |
| DOM interface | HTMLSlotElement |
Specifications #
::: _table #
Specification #
HTML Standard
[#
the-slot-element]{.small}
DOM Standard
[# shadow-tree-slots]{.small}
#
:::
Browser compatibility #
::: _table Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
slot 53 79 63 No 40 10 53 53 63 41 10 6.0
name 53 79 63 No 40 10 53 53 63 41 10 6.0
:::
See also #
::: section-content
- HTML
<template>element - HTML
slotattribute - CSS
::slottedpseudo-element - CSS scoping module :::
::: _attribution
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5
or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot{._attribution-link}
:::