Tôi đang gặp khó khăn với bộ chọn CSS cụ thể này, công cụ này không muốn hoạt động khi tôi thêm :not(:empty)
vào nó. Nó dường như hoạt động tốt với bất kỳ sự kết hợp nào của các bộ chọn khác:
input:not(:empty):not(:focus):invalid { border-color: #A22; box-shadow: none }
Nếu tôi loại bỏ :not(:empty)
một phần, nó hoạt động tốt. Ngay cả khi tôi thay đổi bộ chọn thành input:not(:empty)
nó vẫn sẽ không chọn các trường nhập có văn bản được nhập vào chúng. Cái này bị hỏng hay tôi không được phép sử dụng :empty
trong một :not()
bộ chọn?
Điều khác duy nhất mà tôi có thể nghĩ đến là các trình duyệt vẫn nói rằng phần tử trống vì nó không có phần tử con, chỉ là một "giá trị" cho mỗi lần nói. Liệu :empty
selector không có chức năng riêng biệt cho một yếu tố đầu vào so với một yếu tố thường xuyên? Tuy nhiên, điều này dường như không thể xảy ra bởi vì sử dụng :empty
trên một trường và nhập một thứ gì đó vào nó sẽ khiến các hiệu ứng thay thế biến mất (vì nó không còn trống).
Đã thử nghiệm trên Firefox 8 và Chrome.
:empty
selector : "Một số yếu tố khác, mặt khác, là rỗng (tức là không có con) theo định nghĩa: <input>
, <img>
, <br>
, và <hr>
, ví dụ."
:not(:empty)
, đường viền màu đỏ hoạt động như mong đợi đối với đầu vào không đúng tiêu điểm nhưng không hợp lệ.