`:has-slotted` CSS псевдокласс
Базовая поддержка Ограниченная доступность
Эта возможность не входит в Baseline, так как не работает в некоторых наиболее широко используемых браузерах.
:has-slotted CSS псевдокласс соответствует элементу, если содержимое элемента <slot> не пусто или не использует значение по умолчанию (подробнее см. в статье Использование шаблонов и слотов).
Примечание: Даже одного текстового узла с пробелом достаточно, чтобы применился :has-slotted.
Это работает только при использовании внутри CSS, размещённого в теневом DOM.
/* Selects the content of a <slot> element that has content that is not default */
:has-slotted {
color: green;
}
/* Selects the content of a <slot> element that has no content or default */
:not(:has-slotted) {
color: red;
}
Синтаксис
:has-slotted {
/* ... */
}
Примеры
В этом примере есть два элемента <slot>: одному назначено содержимое, а другому — нет.
HTML
<p>
<template shadowrootmode="open">
<style>
:has-slotted {
color: rebeccapurple;
}
</style>
<slot name="one">Placeholder 1</slot>
<slot name="two">Placeholder 2</slot>
</template>
<span slot="one">Slotted content</span>
</p>
Результат
Элемент <slot>, которому назначено содержимое, соответствует псевдоклассу :has-slotted, поэтому к нему применяется значение rebeccapurple свойства color.
Спецификации
| Спецификация |
|---|
| CSS Shadow Module Level 1 # the-has-slotted-pseudo |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
has-slotted |
Нет |
Нет |
136 |
Нет |
Нет |
Нет |
136 |
Нет |
Нет |
Нет |
Нет |
Нет |
См. также
- Элемент HTML
<template> - Элемент HTML
<slot> ::slotted()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:has-slotted