CSS-справочникВ стандарте

CSS ::slotted() — как работает

CSS ::slotted(): принцип работы, корректный синтаксис, практический сценарий, ограничения, ошибки и актуальная совместимость.

Когда применять

В материале о «::slotted()» основное внимание уделено области «псевдоэлементы». Псевдоэлемент ::slotted() выбирает специальную часть элемента без отдельного HTML-узла. Проверяйте поведение «::slotted()» в учебном примере без внешнего фреймворка, причём проверяйте и светлую, и тёмную цветовую схему.

Практическое правило для ::slotted()

Рабочий критерий для «::slotted()»: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него. Если результат «::slotted()» меняется вместе с посторонним условием, пример ещё не изолирован.

Синтаксис ::slotted()

Для демонстрации «::slotted()» используется короткий код с наблюдаемым результатом. Сохраните структуру примера, когда будете проверять другое значение.

css
.label::slotted() {
  color: #2563eb;
}
Открыть в Playground

Как работает ::slotted()

Браузер обрабатывает «::slotted()» в контексте области «псевдоэлементы»: применяет декларации к псевдоэлементу без добавления лишнего HTML-узла. Для «::slotted()» наблюдения через изменение DOM в панели Elements и отображение в режиме печати отделяют исходное условие от результата.

Проверка в проекте

  • Проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него; результат относится непосредственно к «::slotted()».
  • Проверить длинный текст, пустое значение и отсутствие необязательного ресурса при разборе «::slotted()».
  • Проверьте «::slotted()» в учебном примере без внешнего фреймворка через изменение DOM в панели Elements и запишите наблюдаемое изменение.
Выбор конструкции

Критерий выбора «::slotted()» — предсказуемая работа в заявленном контексте. Для «::slotted()» подтвердите её через изменение DOM в панели Elements и соблюдите ограничение: проверяйте и светлую, и тёмную цветовую схему.

Практика с ::slotted()

Соберите «::slotted()» в рабочем фрагменте интерфейса и проверьте предметное условие: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него. Затем для «::slotted()» замените содержимое длинным и сузьте контейнер до 320 px.

псевдоэлементы::slotted()

Сценарий: в учебном примере без внешнего фреймворка.

Ошибки при работе с ::slotted()

01

Каскад

Смысловое содержимое нельзя оставлять доступным только через ::slotted() — это предметный риск для «::slotted()».

02

Поддержка

Дублирование интерактивной роли без нативного управления при использовании «::slotted()».

03

Контекст

Использование физической стороны там, где нужен логический отступ; для «::slotted()» проверьте это отдельно.

Поддержка ::slotted()

Для «::slotted()» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «::slotted()»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 50Edgeс версии 79Firefoxс версии 63Safariс версии 10

Спецификация: источник 1.

Вопросы о ::slotted()

Как понять, что «::slotted()» выбрано правильно?

«::slotted()» выбрано правильно, когда оно решает задачу «выбрать создаваемую браузером часть элемента или особый фрагмент его содержимого», сохраняет результат в учебном примере без внешнего фреймворка и проходит предметную проверку: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него.

Нужен ли запасной вариант для «::slotted()»?

Запасной вариант для «::slotted()» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «::slotted()» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.