At the beginning, HTML used to code everything: various HTML tags and HTML attributes were used to say what the content was (a title, a paragraph, etc.) and how it should look (color, font, etc.)
Then in the late 1990's, the W3C (World Wide Web Consortium) decided to organise a bit this big mess: they created CSS. The idea was simple: separate the content (+ structure) from the presentation.
So, for the most recent version of HTML (XHTML 1.0 Strict) to validate using the validator, one must strictly adhere to this principle:
- Use HTML only to code the nature / semantic (whether it's a paragraph, an emphasized word, a title, etc.) or the structure (class, ID) of the content.
- Use CSS to code the presentation (the look) of the content.
This principle is no longer new, and plenty of articles have been written on the topic (if you want to know more, you can ixquick them!)