CSS псевдоэлемент ::placeholder
Используйте CSS-селектор ::placeholder для выбора элемента с текстом-заполнителем. Узнайте о псевдоэлементе и изучите примеры.
Псевдоэлемент ::placeholder выбирает текст-заполнитель поля формы — короткую подсказку, отображаемую внутри пустого <input> или <textarea>, которая исчезает, как только пользователь начинает вводить текст. Он соответствует только элементам, имеющим атрибут placeholder. По умолчанию браузеры отображают текст-заполнитель полупрозрачным или светло-серым цветом.
Сам текст подсказки берётся из HTML-атрибута placeholder, а ::placeholder позволяет задать стиль отображения этой подсказки — её цвет, шрифт и так далее.
Когда применять
Используйте ::placeholder, когда хотите, чтобы подсказка хорошо читалась на фоне формы или соответствовала фирменным цветам. Несколько важных моментов перед тем, как начать стилизацию:
- Применяется ограниченный набор свойств. Поскольку заполнитель является «псевдоконтентом», можно использовать свойства, влияющие на сам текст:
color,font-*,letter-spacing,text-decoration,opacity,backgroundи ряд других. Свойства макета (например,marginилиwidth) не оказывают никакого эффекта. - Обеспечьте достаточный контраст. Светло-серый цвет по умолчанию нередко не соответствует требованиям доступности по контрасту. Если вы меняете цвет, убедитесь, что текст остаётся читаемым.
- Заполнитель — не метка. Он исчезает, как только пользователь начинает печатать, поэтому он никогда не должен заменять настоящий
<label>. Используйте его для примера значения, но не в качестве названия поля.
Вендорные префиксы (-webkit-, -moz-, -ms-) устарели и не нужны для современных браузеров. Стандартный селектор ::placeholder поддерживается везде, поэтому можно безопасно писать единственное правило ::placeholder.
Версия
Синтаксис
Пример синтаксиса CSS ::placeholder
::placeholder {
css declarations;
}Пример селектора ::placeholder:
Пример CSS ::placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
input::placeholder {
color: #1c87c9;
font-size: 1.2em;
font-style: italic;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<input placeholder="Type here..." />
</body>
</html>Пример использования селектора ::placeholder в форме:
Пример кода CSS ::placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
* {
box-sizing: border-box;
}
.container {
margin: 20px auto;
max-width: 250px;
background-color: #8ebf42;
padding: 20px;
}
input {
border: 1px solid #666666;
background-color: #eeeeee;
padding: 15px;
margin-bottom: 20px;
display: block;
width: 100%;
}
input::-webkit-input-placeholder {
color: #666666;
}
input::-moz-placeholder {
color: #666666;
}
input:-ms-input-placeholder {
color: #666666;
}
input::placeholder {
color: #666666;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<div class="container">
<form>
<input type="text" placeholder="Lorem ipsum is simply..." />
<input type="date" placeholder="DD/MM/YYYY" />
</form>
</div>
</body>
</html>Пример использования селектора ::placeholder с атрибутом autofocus HTML-элемента <input>:
HTML-пример placeholder
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
label {
display: block;
color: #777777;
margin: 0 0 4px;
}
input {
border: 1px solid transparent;
padding: 15px;
font-size: 1.2em;
outline: 0;
}
input::placeholder {
color: #8ebf42;
}
label,
input {
font-family: sans-serif;
}
</style>
</head>
<body>
<h2>::placeholder selector example</h2>
<form action="#">
<div>
<label for="name">Name:</label>
<input id="name" name="name" type="text" placeholder="Enter your name here" autofocus />
</div>
</form>
</body>
</html>Связанные темы
- CSS-селектор
:focus— стилизация поля, пока пользователь вводит в него текст. - CSS-свойство
color— свойство, наиболее часто используемое вместе с::placeholder. - HTML-тег
<input>и HTML-тег<textarea>— элементы, имеющие атрибутplaceholder.