i used :empty
selector in .error
class. the problem is that even when there is no content inside the div with class of error, the error class is n
The :empty pseudo-class doesn't select elements, containing elements or text (and white space is text).
However, there is now the experimental :blank pseudo-class which selects elements, containing nothing or just white space, and .error:blank
would select that <div>
element. You should avoid using experimental features in your production code, though.
it is because <div class="error"> </div>
(demo) is not empty, it has a text node as the child.
:empty
The :empty pseudo-class represents any element that has no children at all. Only element nodes and text (including whitespace) are considered. Comments or processing instructions do not affect whether an element is considered empty or not.
Try
<div class="error"></div>
Demo: Fiddle