Подсказывающий текст

В дизайне часто требуется вставить пояснение к текстовому полю, но не всегда для этого имеется место. Решением в таком случае является добавление подсказывающего текста непосредственно внутрь поля, а при получении фокуса или вводе текста подсказка пропадает. Это делается с помощью атрибута placeholder, значением которого служит любой текст. Подсказка делается для полей text, password, search, email, tel, url и <textarea>, иными словами, везде, где вводится текст.

Подсказывающий текст отображается серым цветом, и в зависимости от браузера исчезает при получении фокуса или вводе текста. Подсказка не появляется при наличии атрибута value с непустым значением.

В примере 1 показано добавление подсказки к полям формы для создания авторизации.

Пример 1. Подсказывающий текст

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Подсказка</title>
 </head>
 <body>
  <form>
   <p><input name="login" placeholder="Логин"></p>
   <p><input name="pass" type="password" placeholder="Пароль"></p>
   <p><input type="submit" value="Вход"></p>
  </form>
 </body>
</html>

Результат примера показан на рис. 1.

Вид полей с подсказывающим текстом

Рис. 1. Вид полей с подсказывающим текстом

Серый цвет, используемый по умолчанию, выбран удачно, но не всегда вписывается в дизайн страницы, особенно если меняется цвет фона полей формы. Для изменения цвета текста выводимого через атрибут placeholder в Firefox применяется псевдоэлемент ::-moz-placeholder.

::-moz-placeholder { color: red; }

В Safari, Opera и Chrome стиль текста меняется следующим образом.

::-webkit-input-placeholder { color: red; }

В IE используется другой подход.

:-ms-input-placeholder { color: red; }

Соединяя воедино эти стили получим страницу, одинаково работающую во всех современных браузерах (пример 2).

Пример 2. Цвет подсказывающего текста

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Подсказка</title>
  <style>
   input {
    background: #86328c; /* Цвет фона */
    color: #fffac0; /* Цвет текста */
    padding: 5px; /* Поля */
    border: transparent; /* Прячем рамку */
    width: 200px; /* Ширина поля */
   }
   ::-webkit-input-placeholder {
    color: #f9a4bc; /* Chrome, Safari, Opera */
   }
   ::-moz-placeholder {
    color: #f9a4bc; /* Firefox */
   }
   :-ms-input-placeholder { 
    color: #f9a4bc; /* IE */
   }
  </style>
 </head>
 <body>
  <form>
   <p><input name="login" placeholder="Логин"></p>
   <p><input name="pass" type="password" placeholder="Пароль"></p>
   <p><button type="submit">Вход</button>
  </form>
 </body>
</html>

Результат данного примера показан на рис. 2.

Вид полей с подсказывающим текстом

Рис. 2. Изменение цвета подсказывающего текста

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 05.09.2017
Редакторы: Влад Мержевич
Курс по вёрстке сайта на CSS Grid