Labriko
@Labriko
Senior Frontend Developer

Как сделать «всплывающий» плейсхолдер?

Добрый день.
Необходимо сверстать инпут так, чтобы при фокусе плейсхолдер плавно всплывал вверх и становился "лейблом" (а также уменьшался в размере). Соответственно, при блюре, если поле было заполнено, то плейсхолдер так и остаётся наверху; если же поле так и осталось пустым, то плейсхолдер так же плавно опускается на своё законное место.
Пробовал сделать это на костылях с использованием позиционирования, но хотелось бы всё же использовать какой-то более интеллектуальный и универсальный способ, если он существует. Без вашей помощи не обойтись
Спасибо
0cff21cb36164f6b86e7a897820435cf.png
  • Вопрос задан
  • 2858 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега CSS
frontend developer
Рализация плейсхолдеров внутри input'a?
Посмотрите мой ответ там. Как раз по вашей теме.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@roman01la
Используйте только label, таков стандарт и это автоматически делает поле формы более доступным.
Пример: jsbin.com/vaqoxikika/1/edit?html,css,output
Ответ написан
paradokso
@paradokso
Начинающий фронт-эндер
вместо плейсхолдера используйте спан
<input type="text"/><span>Placeholder</span>
вот с ним вы и сможете сделать все что захотите.
А дальше или селекторами ЦСС или скриптами задаете поведение спана при фокусе и блюре
Ответ написан
Комментировать
zooks
@zooks
Frontend
Вариант исполнения: сделать не плейсхолдер, а именно лейбл, лежащий за полупрозрачным полем.
При фокусе на поле происходит нужная вам анимация и наоборот.
Ответ написан
Комментировать
@emilium
frontend developer
Вот пример codepen.io/emilium/pen/qdEMvE
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы