Có thể, với các cảnh báo CSS thông thường và nếu mã HTML có thể được sửa đổi. Nếu bạn thêm requiredthuộc tính cho phần tử, thì phần tử đó sẽ khớp :invalidhoặc :validtùy theo giá trị của điều khiển có trống hay không. Nếu phần tử không có valuethuộc tính (hoặc nó có value=""), giá trị của điều khiển ban đầu trống và trở nên không trống khi bất kỳ ký tự nào (thậm chí là khoảng trắng) được nhập.
Thí dụ:
<style>
#foo { background: yellow; }
#foo:valid { outline: solid blue 2px; }
#foo:invalid { outline: solid red 2px; }
</style>
<input id=foo required>
Loại giả :validvà :invalidchỉ được xác định trong các tài liệu CSS cấp Dự thảo, nhưng hỗ trợ khá phổ biến trong các trình duyệt, ngoại trừ trong IE, nó đi kèm với IE 10.
Nếu bạn muốn làm cho trống rỗng, bao gồm các giá trị chỉ bao gồm các khoảng trắng, bạn có thể thêm thuộc tính pattern=.*\S.*.
(Hiện tại) không có bộ chọn CSS để phát hiện trực tiếp liệu điều khiển đầu vào có giá trị không trống hay không, vì vậy chúng ta cần thực hiện gián tiếp, như được mô tả ở trên.
Nói chung, các bộ chọn CSS đề cập đến đánh dấu hoặc, trong một số trường hợp, thuộc tính phần tử như được đặt với tập lệnh (JavaScript phía máy khách), thay vì hành động của người dùng. Ví dụ: :emptykhớp phần tử với nội dung trống trong đánh dấu; tất cả các inputyếu tố là không thể tránh khỏi trống rỗng trong ý nghĩa này. Bộ chọn [value=""]kiểm tra xem phần tử có valuethuộc tính trong đánh dấu và có chuỗi rỗng làm giá trị của nó không. Và :checkedvà :indeterminatenhững điều tương tự. Họ không bị ảnh hưởng bởi đầu vào người dùng thực tế.