N.B.: I should note that the proper solution to this is to just use the \'placeholder\' attribute of an input, but the question still stands.
Another N.B.: Since, as Qu
There are new pseudo classes for matching a number of properties of an input element
:valid
:invalid
:in-range
:out-of-range
:required
A required element with no value set to it will match against :invalid
. If you insist on using the value instead of placeholder, you could simply add a pattern or a customValidity function to force your initial value to be counted as invalid.