CSS селектор :host — сам кастомний елемент зсередини
CSS псевдоклас :host вибирає сам кастомний елемент зсередини його тіньових стилів.
Загальний опис
Зі стилів усередині тіньового DOM звичайним селектором до хоста не дотягнутися — він же в зовнішньому документі. :host — єдиний спосіб.
З аргументом він стає умовним: :host(.dark) спрацює лише тоді, коли на самому елементі є клас dark. Так компонент реагує на зовнішні класи чи атрибути.
- Порада
-
Задавай хосту
автор: NagarDdisplay: кастомні елементи типовоinline, і це майже завжди не те, чого хочеш.
Синтаксис
:host, :host(<selector>)
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| host | 53+ | 63+ | 10+ | 40+ | 79+ | - |
| Переглядач | ||||
|---|---|---|---|---|
| host | 53+ | yes | yes | 10+ |
Приклади
+ запропонувати свій приклад у пісочниці
Компонент, що реагує на клас, поставлений ззовні.
HTML
<my-card class="dark">Темна картка</my-card>
<my-card>Звичайна картка</my-card>
JS
customElements.define('my-card', class extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' }).innerHTML = `
<style>
:host { display: block; padding: 1rem; border: 1px solid #ddd; }
:host(.dark) { background: #14170f; color: #fff; }
</style>
<slot></slot>
`;
}
});
Коментарі
Коментарів ще немає — будьте першим!