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