Огляди, рейтинги та поради з вибору техніки 2026
Hi-News: Цифровий Світ » Компютери » Стилізація елемента placeholder в CSS

Стилізація елемента placeholder в CSS

20.06.2018, 19:03
1 467
0
Плейсхолдер - елемент поля введення, в якому можна розмістити підказку. Коли користувач починає вводити дані, допоміжний текст пропадає, щоб не заважати. Кожен браузер має свою думку на рахунок того, як слід відображати цей елемент, і часом дефолтні стилі ламають весь дизайн. Щоб управляти ними, потрібно скористатися спеціальним правилом CSS placeholder.

Де знаходиться плейсхолдер?

Проблема в тому, що підказка поля введення надійно захована в тіньовому DOM, і дістатися до неї не так-то просто. Для цього використовується особливий нестандартний псевдоэлемент CSS ::placeholder. З його допомогою можна керувати властивостями підказки.
Стилізація placeholder на CSS виглядає так:

input::placeholder {
color: red;
opacity: 1;
font-style: italic;
}

Підтримка браузерами

Псевдоэлемент CSS placeholder добре обробляється усіма сучасними браузерами, а для підтримки старих браузерів можна скористатися префіксами:

<script async="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
<!-- fb_336x280_1 -->

<script> (adsbygoogle = window.adsbygoogle ||[]).push({});
  • ::-webkit-input-placeholder - для webkit-браузерів (Mozilla, Chrome, Opera);
  • ::-moz-placeholder - для браузерів Firefox вище 19 версії;
  • :-moz-placeholder - для старих Firefox;
  • :-ms-input-placeholder - для Internet Explorer вище 10 версії.

Як видно, старі браузери Mozilla, а також IE вважають placeholder CSS-псевдоклассом, а не псевдоэлементом. Не будемо з ними сперечатися, просто врахуємо цей аспект при стилізації поля вводу.

Можливості стилізації

Для псевдоэлемента placeholder в CSS можна встановити наступні параметри:

  • фон - група background-властивостей. Фон блоку підказки поширюється на все поле вводу. Можна задати не тільки колір (background-color), але і зображення (background-image).
  • колір тексту - color;
  • прозорість - opacity;
  • підкреслення, надчеркивание або закреслення text-decoration;
  • регістр - text-transform;
  • внутрішні відступи - padding. Підтримується не всіма браузерами. Як для рядкових елементів, верхній і нижній відступи ігноруються.
  • відображення шрифту - властивості групи font, line-height і різноманітні відступи (text-indent, letter-spacing, word-spacing);
  • вертикальне вирівнювання в рядку - vertical-align;
  • обрізка тексту при переповнюванні контейнера - text-overflow.
  .input1::placeholder {
background-image: linear-gradient(lime, blue);
color: white;
}
.input2::placeholder {
text-decoration: line-through;
color: black;
font-weight: bold;
}
.input3::placeholder {
font-size: 16px;
letter-spacing: 10px;
}
.input4::placeholder {
background: brown;
color: white;
text-overflow: ellipsis;
}

У фокусі

За замовчуванням підказка пропадає з поля вводу тільки в тому випадку, якщо в нього введений хоча б один символ. Але псевдоэлемент CSS placeholder дозволяє реалізувати зникнення відразу при фокусуванні на полі. Для цього необхідно поєднати його з псевдоклассом :focus.

  input:focus::placeholder {
color: transparent;
}

В деяких браузерах допустимо анімувати зміна ряду властивостей плейсхолдера з допомогою інструкції transition.

input::placeholder {
color: black;
transition: color 1s;
}
input:focus::placeholder {
color: white;
}


У браузері Google Chrome колір підказки при фокусуванні на такому полі буде плавно змінюватись протягом однієї секунди.
Схожі статті
CSS Selectors. Види селекторів
CSS Selectors. Види селекторів
Що таке селектори CSS? Як ними користуватися? Який селектор ідеально підійде для вашого випадку? Розглянемо всім існуючі варіанти.
Псевдокласи CSS :focus, :hover :active
Псевдокласи CSS :focus, :hover :active
Динамічні псевдокласи в каскадних таблицях стилів дозволяють змінювати поведінку і зовнішній вигляд елементів в залежності від дій користувача. З
Створення стилів для елементів checkbox. CSS
Створення стилів для елементів checkbox. CSS
Тип checkbox для поля вводу. Створення чекбоксов і їх стилізація в CSS. Розміщення і позиціонування полів input. Приєднання checkbox до тегу label.
Прокомментировать
Натисніть на зображення, щоб оновити код, якщо він нерозбірливий