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

CSS ::marker — как работает

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

Суть темы

Назначение «::marker» раскрывается через задачу «выбрать создаваемую браузером часть элемента или особый фрагмент его содержимого». Псевдоэлемент ::marker выбирает специальную часть элемента без отдельного HTML-узла. Для воспроизводимой проверки «::marker» используйте пример в форме, где часть полей становится недоступной и наблюдайте изменение при prefers-reduced-motion.

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

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

Синтаксис ::marker

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

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

Как работает ::marker

Механика «::marker» начинается с допустимого контекста и заканчивается наблюдаемым результатом. Применяет декларации к псевдоэлементу без добавления лишнего HTML-узла; для «::marker» отдельно проверьте изменение при prefers-reduced-motion.

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

  • Проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него; результат относится непосредственно к «::marker».
  • Пройти компонент клавишами Tab, Enter, Space и стрелками, если они предусмотрены при разборе «::marker».
  • Проверьте «::marker» в форме, где часть полей становится недоступной через изменение при prefers-reduced-motion и запишите наблюдаемое изменение.
Выбор конструкции

Критерий выбора «::marker» — предсказуемая работа в заявленном контексте. Для «::marker» подтвердите её через изменение при prefers-reduced-motion и соблюдите ограничение: оставляйте DOM-порядок логичным для чтения.

Практика с ::marker

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

псевдоэлементы::marker

Сценарий: в форме, где часть полей становится недоступной.

Ошибки при работе с ::marker

01

Каскад

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

02

Поддержка

Использование !important вместо разбора каскада при использовании «::marker».

03

Контекст

Фиксированные размеры, которые перестают вмещать реальное содержимое; для «::marker» проверьте это отдельно.

Поддержка ::marker

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

Chromeс версии 86Edgeс версии 86Firefoxс версии 68Safariс версии 11.1

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

Вопросы о ::marker

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

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

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

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

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

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