CSS селектор ::part() — стилізація частин компонента ззовні


CSS псевдоелемент ::part() дозволяє ззовні стилізувати ті частини тіньового DOM, які компонент сам відкрив атрибутом part.

автор: NagarD

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

Це договір між автором компонента і його користувачем. Компонент каже: «оці елементи я дозволяю тобі фарбувати» — і позначає їх атрибутом part="label". Усе інше лишається схованим.

На відміну від ::slotted(), тут стилі йдуть ззовні всередину, а не навпаки.

автор: NagarD

Синтаксис

::part(<ident>)

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
part 73+ 72+ 13.1+ 60+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
part 73+ yes yes 13.4+

Приклади

+ запропонувати свій приклад у пісочниці

Зовнішній стиль для відкритої частини компонента.

HTML

<my-input></my-input>

CSS

my-input::part(label) {
    color: #0172ad;
    font-weight: bold;
}

JS

customElements.define('my-input', class extends HTMLElement {
    constructor() {
        super();
        this.attachShadow({ mode: 'open' }).innerHTML = `
            <label part="label">Підпис, відкритий для стилізації</label>
            <input>
        `;
    }
});
автор: NagarD

Коментарі

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

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

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

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

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

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

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

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

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

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

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