логотип PurpleSchool
логотип PurpleSchool

Псевдоэлемент placeholder в CSS. Полное руководство с примерами

Автор

Дмитрий Нечаев

Плейсхолдеры в полях ввода (<input>, <textarea>) используются для отображения временного текста, который исчезает, когда пользователь начинает вводить данные. Псевдоэлемент ::placeholder в CSS позволяет стилизовать этот текст, чтобы улучшить внешний вид и повысить удобство использования форм. В этой статье мы подробно рассмотрим псевдоэлемент ::placeholder, его применение и приведём примеры использования для различных ситуаций.

Основы использования псевдоэлемента ::placeholder

Псевдоэлемент ::placeholder применяется к тексту плейсхолдера внутри элементов <input> и <textarea>. Он позволяет изменить цвет, шрифт, размер шрифта и другие свойства текста плейсхолдера.

Пример базового использования псевдоэлемента ::placeholder

input::placeholder {
  color: gray;
  font-style: italic;
}
<input type="text" placeholder="Введите ваше имя">

В этом примере текст плейсхолдера будет серым и курсивным.

Поддержка браузерами

Поддержка псевдоэлемента ::placeholder широко распространена в современных браузерах, но в некоторых случаях могут потребоваться вендорные префиксы для обеспечения кроссбраузерной совместимости.

Пример использования вендорных префиксов

input::placeholder {
  color: gray;
}

input:-ms-input-placeholder { /* Для Internet Explorer 10-11 */
  color: gray;
}

input::-ms-input-placeholder { /* Для Microsoft Edge */
  color: gray;
}

input::-webkit-input-placeholder { /* Для WebKit-браузеров (Chrome, Safari) */
  color: gray;
}

input::-moz-placeholder { /* Для Firefox 4-18 */
  color: gray;
}

input:-moz-placeholder { /* Для Firefox 19+ */
  color: gray;
}

Примеры использования псевдоэлемента ::placeholder

Стилизация плейсхолдеров в текстовых полях

Пример:

input[type="text"]::placeholder {
  color: lightgray;
  font-style: italic;
}
<input type="text" placeholder="Введите ваш текст">

В этом примере плейсхолдер в текстовом поле будет светло-серым и курсивным.

Стилизация плейсхолдеров в текстовых областях

Пример:

textarea::placeholder {
  color: darkgray;
  font-weight: bold;
}
<textarea placeholder="Введите ваше сообщение"></textarea>

В этом примере плейсхолдер в текстовой области будет темно-серым и жирным.

Стилизация плейсхолдеров в различных типах полей ввода

Пример:

input[type="email"]::placeholder {
  color: blue;
}

input[type="password"]::placeholder {
  color: red;
  font-style: italic;
}

input[type="search"]::placeholder {
  color: green;
  text-transform: uppercase;
}
<input type="email" placeholder="Введите ваш email">
<input type="password" placeholder="Введите ваш пароль">
<input type="search" placeholder="Поиск">

В этом примере плейсхолдеры в различных типах полей ввода будут иметь разные стили: синий для email, красный курсив для пароля и зелёный верхний регистр для поиска.

Сложные примеры использования псевдоэлемента ::placeholder

Анимация плейсхолдера

Плейсхолдеры могут быть анимированы для привлечения внимания пользователя к полю ввода.

@keyframes fadeInOut {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

input::placeholder {
  color: gray;
  animation: fadeInOut 2s infinite;
}
<input type="text" placeholder="Введите ваше имя">

В этом примере плейсхолдер будет плавно изменять прозрачность, создавая эффект мерцания.

Стилизация плейсхолдера в зависимости от состояния поля ввода

Можно изменить стиль плейсхолдера в зависимости от состояния фокуса поля ввода.

input::placeholder {
  color: gray;
}

input:focus::placeholder {
  color: blue;
}
<input type="text" placeholder="Введите ваш текст">

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

Использование в реальных проектах

Форма регистрации

Пример использования псевдоэлемента ::placeholder для стилизации плейсхолдеров в форме регистрации:

form {
  max-width: 400px;
  margin: 20px auto;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 5px;
  background-color: #f9f9f9;
}

.form-field {
  margin-bottom: 15px;
}

.form-field label {
  display: block;
  margin-bottom: 5px;
}

.form-field input {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
}

.form-field input::placeholder {
  color: gray;
  font-style: italic;
}

.submit-button {
  background-color: #007bff;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  display: block;
  width: 100%;
  box-sizing: border-box;
}

.submit-button:hover {
  background-color: #0056b3;
}
<form>
  <div class="form-field">
    <label for="name">Имя:</label>
    <input type="text" id="name" name="name" placeholder="Введите ваше имя">
  </div>
  <div class="form-field">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" placeholder="Введите ваш email">
  </div>
  <div class="form-field">
    <label for="password">Пароль:</label>
    <input type="password" id="password" name="password" placeholder="Введите ваш пароль">
  </div>
  <button type="submit" class="submit-button">Регистрация</button>
</form>

В этом примере плейсхолдеры в полях ввода формы регистрации будут серыми и курсивными.

Форма обратной связи

Пример использования псевдоэлемента ::placeholder для стилизации плейсхолдеров в форме обратной связи:

form {
  max-width: 500px;
  margin: 20px auto;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 5px;
  background-color: #f9f9f9;
}

.form-field {
  margin-bottom: 20px;
}

.form-field label {
  display: block;
  margin-bottom: 5px;
}

.form-field input,
.form-field textarea {
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
  color: darkgray;
  font-style: italic;
}

.submit-button {
  background-color: #28a745;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  display: block;
  width: 100%;
  box-sizing: border-box;
}

.submit-button:hover {
  background-color: #218838;
}
<form>
  <div class="form-field">
    <label for="name">Имя:</label>
    <input type="text" id="name" name="name" placeholder="Введите ваше имя">
  </div>
  <div class="form-field">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" placeholder="Введите ваш email">
  </div>
  <div class="form-field">
    <label for="message">Сообщение:</label>
    <textarea id="message" name="message" rows="5" placeholder="Введите ваше сообщение"></textarea>
  </div>
  <button type="submit" class="submit-button">Отправить</button>
</form>

В этом примере плейсхолдеры в полях ввода и текстовой области формы обратной связи будут темно-серыми и курсивными.

Заключение

Псевдоэлемент ::placeholder в CSS предоставляет мощный способ стилизации плейсхолдеров в полях ввода и текстовых областях. Это помогает улучшить внешний вид форм и повысить удобство их использования. Понимание различных способов использования псевдоэлемента ::placeholder, а также его комбинирование с другими селекторами и псевдоклассами, помогает разработчикам создавать более гибкие и адаптивные стили. Экспериментируйте с различными подходами и находите оптимальные решения для ваших проектов.

Стрелочка влевоПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по использованию свойства will-change в CSSПолное руководство по свойству transform-style в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSПолное руководство по свойству perspective-origin в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерами
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по свойству will-change в CSSПолное руководство по transition-timing-function в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Frontend
Mobile
изображение курса

TypeScript с нуля

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Backend
Frontend
Mobile
изображение курса

Next.js - с нуля

Антон Ларичев
иконка часов8 бесплатных уроков
иконка звёздочки рейтинга4.7
Frontend