How bad is it to use display: none in CSS?
In these days of jQuery (and other JavaScript frameworks) heavy websites then I can't see how it can be a problem, since it's used extensively when you use things like jQuery sliders, transitions, galleries, tickers etc. These are now commonplace and search-engines are clever enough not to blindly penalise their use.
A user RainboRick states this in the Google Webmaster Central forum:
Merely using display:none will not automatically trigger a penalty. The key is whether or not there is a mechanism - either automatic or one that is invoked by the user - to make the content visible. Google is becoming very adept at processing JavaScript to find and interpret such mechanisms. If you use valid HTML, CSS, and JavaScript you have nothing to worry about.
If you are not abusing it, it will not be a problem. At this time Google does not crawl CSS stylesheets looking for instances of display: none
Google is not going to declare war on a widely used style rule, they are just giving a warning to those thinking they could add 1000 keywords to a site that are all set to display: none
or even worse, margin-left: 9999px
Use "display: none" only when it is the right tool to use.
As the quotes suggest, the problem search engines have with display none is spam. Attempting to spam search engines, regardless of what tools you use for that, is a bad idea. If you use CSS for anything other than spam, then there is no problem.
The right tool for the right job.