Сделать тело относительным. Добавьте z-index и фоновое свойство к кнопке show.element. Установите высоту коробки равной, возможно, 20 пикселей, так что упаковщик коробки, кажется, происходит от кнопки show.element.
body {
background: #34495E;
position: relative;
}
.container {
position: absolute;
left: 50%;
top: 50%;
margin-left: -12.5%;
background: #191919;
width: 400px;
height: 400px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
div[data-define="show.element"] {
width: 150px;
z-index: 1;
text-align: center;
background: #191919;
border: 2px solid #3498db;
border-radius: 15px;
color: white;
padding: 5px 10px;
transition: 0.1s;
outline: none;
}
.box {
width: 300px;
height: 20px;
}
Обновлен кодовый блок - https://codepen.io/anon/pen/QorQrj?editors=0100
РЕДАКТИРОВАТЬ - Ах, как упомянуто @kukkuz, проблема в justify-content. Когда высота родителя равна 0, а justify-content находится в центре. Он пытается центрировать по вертикали дочерние элементы, высота которых больше 0, и в конечном итоге идет вверх, чтобы вертикально центрировать родительский элемент, высота которого равна 0.
Удаление justify-content разместит ваши элементы ввода так, как вы хотите, но есть проблема с анимацией слайдов, потому что элементы ввода остаются там, где они должны, и переход не имеет значения, потому что эти элементы не затрагиваются.
По умолчанию для полей ввода, полей, высоты, отступов и отступов установлено значение 0. И по щелчку «Показать форму регистрации», обновите эти свойства до того, что они должны быть.
https://codepen.io/anon/pen/QorQrj?editors=0100