Spec-Zone.ru › CSS

`:placeholder-shown` CSS-псевдокласс

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с января 2020 года.

:placeholder-shown — это CSS-псевдокласс, который соответствует любому элементу <input> или <textarea>, в котором в данный момент отображается текст-плейсхолдер.

Попробуйте

label {
  display: block;
  margin-top: 1em;
}

input:placeholder-shown {
  background-color: ivory;
  border: 2px solid darkorange;
  border-radius: 5px;
}
<form>
  <label for="name">Full Name:</label>
  <input id="name" name="name" type="text" />

  <label for="email">Email Address:</label>
  <input id="email" name="email" type="email" placeholder="name@example.com" />

  <label for="age">Your age:</label>
  <input
    id="age"
    name="age"
    type="number"
    value="18"
    placeholder="You must be 18+" />
</form>

Синтаксис

:placeholder-shown {
  /* ... */
}

Примеры

Базовый пример

В этом примере задаются особые стили шрифта и границы, когда отображается плейсхолдер.

HTML

<input placeholder="Type something here!" />

CSS

input {
  border: 1px solid black;
  padding: 3px;
}

input:placeholder-shown {
  border-color: teal;
  color: purple;
  font-style: italic;
}

Результат

Переполнение текста

Если поля формы слишком малы, текст плейсхолдера может нежелательным образом обрезаться. Чтобы изменить отображение переполняющегося текста, можно использовать свойство text-overflow.

HTML

<input id="input1" placeholder="Name, Rank, and Serial Number" /> <br /><br />
<input id="input2" placeholder="Name, Rank, and Serial Number" />

CSS

#input2:placeholder-shown {
  text-overflow: ellipsis;
}

Результат

Настроенное поле ввода

В следующем примере для поля «Идентификатор студента» задаётся пользовательский стиль.

HTML

<form id="test">
  <p>
    <label for="name">Enter Student Name:</label>
    <input id="name" placeholder="Student Name" />
  </p>
  <p>
    <label for="branch">Enter Student Branch:</label>
    <input id="branch" placeholder="Student Branch" />
  </p>
  <p>
    <label for="sid">Enter Student ID:</label>
    <input
      pattern="[0-9]{8}"
      title="8 digit ID"
      id="sid"
      class="student-id"
      placeholder="8 digit id" />
  </p>
  <input type="submit" />
</form>

CSS

input {
  background-color: #e8e8e8;
  color: black;
}

input.student-id:placeholder-shown {
  background-color: yellow;
  color: red;
  font-style: italic;
}

Результат

Спецификации

Спецификация
HTML
# selector-placeholder-shown
Селекторы уровня 4
# placeholder-shown-pseudo

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android WebView на iOS
placeholder-shown
47
79
51
4–51
34
9
47
51
4–51
34
9
5.0
47
9
non_text_types
47
79
59
34
9
47
59
34
9
5.0
47
9

См. также

  • Псевдоэлемент ::placeholder задаёт стиль самого плейсхолдера.
  • Связанные элементы HTML: <input>, <textarea>
  • Формы HTML

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:placeholder-shown

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API