CSS селектор :host — сам кастомний елемент зсередини


CSS псевдоклас :host вибирає сам кастомний елемент зсередини його тіньових стилів.

автор: NagarD

Загальний опис

Зі стилів усередині тіньового DOM звичайним селектором до хоста не дотягнутися — він же в зовнішньому документі. :host — єдиний спосіб.

З аргументом він стає умовним: :host(.dark) спрацює лише тоді, коли на самому елементі є клас dark. Так компонент реагує на зовнішні класи чи атрибути.

автор: NagarD

Порада

Задавай хосту display: кастомні елементи типово inline, і це майже завжди не те, чого хочеш.

автор: NagarD

Синтаксис

:host, :host(<selector>)

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
host 53+ 63+ 10+ 40+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
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>
        `;
    }
});
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід