Я пытаюсь создать текстовое поле, вдохновленное дизайном материала.
Я прочитал похожие вопросы / ответы вокруг.Однако мой вопрос немного отличается, поэтому, пожалуйста, продолжайте читать.
Вот моя таблица стилей для страницы -
.textBoxContainer{
height:50px;
position:relative;
margin:20px;
}
.textbox{
border-bottom: solid 2px #984343;
border-top: none;
border-left: none;
font-family: Candara;
width: 30%;
}
.textbox + .lbl{
position:absolute;
top:0px;
left:0px;
transition:all .2s ease-out;
}
.textbox:focus{
border-bottom: solid 2px #4CAF50;
outline:none;
}
.textbox:focus + label, input:valid+label{
top:-15px;
font-size:10px;
}
Вот текстовое поле, которое я пытаюсь создать -
<div class='textBoxContainer'>
<input class='textbox' type="text" />
<label class='lbl'>
phone no....
</label>
</div>
Он отлично работает, как текстовое поле, вдохновленное дизайном материала, где текст увеличивается при наборе текста.
Однако, после того, как набор текста завершен, если я выхожу из текстового поля, метка снова сворачивается в текстовое поле.
Я думал, что «input: valid» поможет предотвратить егослучилось, но это не так.Я могу решить эту проблему с помощью javascript, но есть ли способ обойтись без использования js?
Я также попытался это поместить «обязательный» в поле ввода, что тоже не помогло.
Пожалуйста, дайте мне знать, если я должен объяснить дальше.