У меня есть этикетка и небольшое поле ввода, встроенные друг в друга. Ниже этой строки у меня есть статический текст.
Когда поле ввода наведено, поле ввода будет увеличиваться влево и «скрывать» встроенный текст рядом с ним.
Что я заметил, так это то, что после того, как поле ввода завершает переход к полной ширине, ниже создается пустая строка (невидимый встроенный текст перемещается в следующую строку).
Я пробовал использовать атрибут display: none, но, к сожалению, переходы и отображение не очень хорошо сочетаются.
HTML:
<div class="container">
<input />
<label>Hide Me</label>
</div>
<div>
<label>Static Text</label>
</div>
CSS (МЕНЬШЕ):
.container {
display: inline-block;
width: 200px;
label {
transition: all ease 1s;
transition-delay: 1s;
}
input {
float: right;
transition: width 2s ease;
width: 0;
&:hover {
width: 200px;
}
}
input:hover + label {
visible: hidden;
opacity: 0;
transition: all ease 0s;
transition-delay: 0;
}
}
Вот демонстрация: Codepen
Есть ли способ полностью скрыть встроенный текст (как если бы встроенный текст отображался: ни один не применен) без Javascript?
У меня есть идея, как решить эту проблему с помощью JavaScript, проверяя, когда переход завершен. Но мне любопытно узнать, есть ли решение только для CSS.