`: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;
}
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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