У меня чертовски много времени с этим конкретным селектором 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.