It used by many huge sites is to pre-load code, navigation, or content in the background so that it can be dynamically displayed as needed. The most common technique for accomplishing this is through the use of the CSS display: none attribute.
Unfortunately, you can also use display: none to simply hide text. This is where the perceived problem comes in. People worry that the use of display: none to hide content(and show when user asks for it) or for code that is really meant for screen readers can lead them into trouble. The legitimate use of this technique is so prevalent that I would rarely expect search engines to penalize a site for using the display: none attribute. It’s just very difficult to implement an algorithm that could truly ferret out whether the particular use of display: none is meant to deceive the search engines or not.
I usually use this tactics to make the page more user friendly and it is useful for the user too. User don't get bombarded by a large content piece and I am not fooling the user/google. I am giving the option to the user to read more if he wants to.
"display: none"
What it does :- the functionality is same - when user clicks "read more" it opens and when user click "less" it closes.
How it defeats the "cloaking" idea:- When google crawls your page where the full content is there (text based browser, not java enabled) and when user sees the page there is a "read more" link and by clicking it it shows the full content. So you are not showing two different things to google & user. it solves the problem.
there shouldn't be a a cloaking problem. Its tested.
Hope this helps...
Also refer :- http://moz.com/community/q/would-using-display-none-to-hide-a-section-of-text-effect-seo-negatively