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

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

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

Назначение и границы

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

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

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

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

Пример «::placeholder» оставляет только контекст, необходимый для области «псевдоэлементы». Измените одно значение и проследите результат в браузере.

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

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

Чтобы объяснить работу «::placeholder», проследите путь от структуры и входного значения до отображения или поведения. Применяет декларации к псевдоэлементу без добавления лишнего HTML-узла. Контрольная точка для «::placeholder» — изменение DOM в панели Elements.

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

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

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

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

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

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

Сценарий: на панели управления с асинхронным обновлением данных.

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

01

Поддержка

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

02

Контекст

Подмена семантики визуально похожим div или span при использовании «::placeholder».

03

Устойчивость

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

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

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

Chromeс версии 57Edgeс версии 79Firefoxс версии 51Safariс версии 10.1

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

Вопросы о ::placeholder

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

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

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

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

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

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