Я создаю материал, подобный текстовому полю, и он работает, за исключением случаев, когда я отключаю поле ввода. Когда поле сфокусировано, метка поднимается над курсором, если в текстовом поле есть какой-либо ввод, он должен оставаться над курсором. Когда я отключаю текстовое поле, метка возвращается в исходное положение, даже если в поле есть текст (см. скрипку а>).
Вот что я делаю:
.txt-group label {
font-size: 18px;
font-weight: normal;
position: absolute;
pointer-events: none;
left: 10px;
top: 10px;
transition: all 0.2s ease-in-out;
color: #999999;
}
.txt-group input:focus ~ label,
.txt-group input:valid ~ label,
.txt-group input:valid:disabled ~ label {
top: -8px;
font-size: 14px;
}
:valid
— это единственный способ в CSS проверить, есть ли уinput
содержимое, но он перестает проходить, если элемент имеет атрибутыreadonly
илиdisabled
. - person Jon Uleis   schedule 02.12.2016