У меня чертовски много времени с этим конкретным селектором CSS, который не хочет работать, когда я добавляю : not (: empty)
. Кажется, он отлично работает с любой комбинацией других селекторов:
input:not(:empty):not(:focus):invalid { border-color: #A22; box-shadow: none }
Если я удалю часть : not (: empty)
, она будет работать нормально Даже если я изменю селектор на input: not (: empty)
, он все равно не выберет поля ввода, в которые введен текст.Это не работает, или мне просто не разрешено использовать : empty
в селекторе : not ()
?
Единственное, что я могу придумать, это то, что браузеры все еще говорят что элемент пуст, потому что у него нет дочерних элементов, а есть только «значение». Разве селектор : empty
не имеет отдельных функций для входного элемента по сравнению с обычным элементом? Однако это маловероятно, потому что использование : empty
в поле и ввод в него чего-либо приведет к исчезновению альтернативных эффектов (потому что оно больше не пустое).
Протестировано в Firefox 8 и Chrome.
Начиная с заполнителя исчезают на входе, можно использовать:
input:placeholder-shown{
//rules for not empty input
}