Как сделать перемещение текста из placeholder в fieldset?

Есть первая картинка, если ткнуть в поле ввода текст из плейсхолдера перемещается в fieldset. Как это сделать? Что используется?

было

стало


Ответы (1 шт):

Автор решения: Инквизитор

Примерно так можно сделать, только придется покумекать, как запретить тексту прыгать назад при потере фокуса инпутом. Но мне лень =)

fieldset {
  padding: 0;
  border: 1px solid green;
  border-radius: 4px;
  display: inline-block;
}

input {
  line-height: 2em;
  height: 1.5em;
  border: 0px none;
  padding: 0 1em 0.25em;
  border-radius: 4px;
  background-color: transparent;
}

legend {
  transform: translate(0, 18px);
  width: 0;
  margin-left: 0.5em;
  font-size: 0.75em;
  color: green;
  padding: 0;
  white-space: nowrap;
  transition-duration: 0;
  z-index: -1;
  position: relative;
}

input:focus {
  outline: none;
}

input:focus+legend {
  padding: 0 0.5em;
  transform: unset;
  width: auto;
  transition-duration: 0.3s;
}
<fieldset>
  <input type="text" />
  <legend>Номер заказа</legend>
</fieldset>

→ Ссылка