A stylesheet is valid in the sense that it conforms to the CSS specifications. This is a purely formal thing. In CSS, the selector a doesn't really matter; it's just an identifier; CSS has no information about the meaning of a in HTML, such as an inline element, and in fact, a stylesheet can be used to style an XML document, where a means something completely different.
HTML validity, on the other hand, is not CSS dependent at all. This is a formal thing about arent markup and markup.
Whether it is “valid” in some other, informal sense (for example, “good practice” or “useful” or “corresponds to the style guide”) is a different issue, and the discussion is not a technical issue. In any case, display: block usually used for the a element, so that you can set its dimensions as we can do for blocks (for example, so that the link fills the table cell).
source share