MIGO Web-Development - разработка и cоздание сайтов в Киеве, Украине

Создание сайтов, поисковое продвижение в Google. Сопровождение, тех.поддержка


звонить: +38 (093) 636 78 08
писать: web@migo.com.ua


Поля ввода input в стиле Google Material Design на CSS3

Создание полей input в стиле Google Material Design на чистом CSS3

1. HTML-разметка

HTML будет довольно простым. Нам потребуется стандартная форма с двумя input-полями. Вот она:

<form>
   <div class="group">      
      <input type="text" required>
      <span class="bar"></span>
      <label>Имя</label>
   </div>
   <div class="group">      
      <input type="text" required>
      <span class="bar"></span>
      <label>Email</label>
   </div>
</form>

Тут у нас три компонента, которые нам нужны.

  • input Будет служить в качестве входных данных.
  • bar Проведет два бара, которые составляют подчеркивание.
  • label Будет выступать в качестве placeholder, пока мы не нажмете на input. После чего он сместится вверх.

С HTML разобрались, переходим к CSS.

2. Анимирование input’ов

Все CSS-стили разделим на три составные части, это: starting stylings(дефолтные стили нашей формы) label/placeholder и underline. Начнем, конечно с дефолтных стилей:

/* form starting stylings ------------------------------- */
.group {
  position: relative;
  margin-bottom: 30px;
}

input {
  font-size: 16px;
  padding: 10px;
  display: block;
  width: 300px;
  border: none;
  border-bottom: 1px solid #ccc;
}
input:focus {
  outline: none;
}

Здесь мы просто разместили наши поля ввода формы. Также устанавливаем group позиционирование position:relative; для того, чтобы в дальнейшем иметь возможность размещать прочие элементы относительно этого.

Теперь переходим к стилизации прочих элементов нашей формы:

/* LABEL ======================================= */
label {
  color: #999;
  font-size: 18px;
  position: absolute;
  pointer-events: none;
  left: 10px;
  top: 15px;
  transition: 0.2s ease all;
  -moz-transition: 0.2s ease all;
  -webkit-transition: 0.2s ease all;
}

/* active state */
input:focus ~ label, input:valid ~ label {
  top: -15px;
  font-size: 14px;
  color: #5264AE;
}


/* BOTTOM BARS ================================= */
.bar {
  position: relative;
  display: block;
  width: 320px;
}
.bar:before, .bar:after {
  content: "";
  height: 2px;
  width: 0;
  bottom: 0;
  position: absolute;
  background: #5264AE;
  transition: 0.2s ease all;
  -moz-transition: 0.2s ease all;
  -webkit-transition: 0.2s ease all;
}
.bar:before {
  left: 50%;
}
.bar:after {
  right: 50%;
}

/* active state */
input:focus ~ .bar:before,
input:focus ~ .bar:after {
  width: 50%;
}

На этом все. Работа завершена, и теперь у нас есть поле ввода, похожее на поля ввода Google Material Design.

3. Результат работы

See the Pen Google Material Design (input) by Migo Userlife (@migo_userlife) on CodePen.

проспект И.Мазепы 5 07300 Украина, Киевская обл., г. Вышгород, +38 (093) 636 78 08
Рассказать друзьям:

comments powered by Disqus