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:requiredA 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.