Before you understand the need for CSS, you must first understand what it is. CSS is a stylesheet language designed to dictate the display properties of the structured elements in an HTML or XHTML file. CSS uses properties in conjunction with HTML elements to define the way a web browser should render an HTML document and it fulfills the goals of HTML developers to separate the style of a web page's design from its structure.
HTML was designed to give authors define the structure of documents by placing segments of their document within tags that declare "this is a heading", "this is a paragraph", "this is a quote", as well as other divisions of the text. HTML defines these elements of a document with tags placed around the segments such as <h1>, <p>, and <q>. HTML was not intended to define the way the document was displayed; it's purpose is simply to define the structure of the document. As browsers were developed each browser's developers added additional elements to the HTML definitions to change the way the documents were displayed. The ability to change font colors, sizes, background colors and more were added by browser's developers but each browser had its own supported elements and there was no standardized styling format for HTML documents, requiring developers to write styles into their HTML documents and make hacks for the different browsers because each browser handled styles in their own way.
To solve the problem of a lack of standardization in both HTML and style, the W3C (World Wide Web Consortium) was formed. The goal of the W3C is to set up standards for coding and scripting languages used for the web. CSS was adopted and implemented by the W3C and the consortium convinced browser developers to support the standards defined by CSS to create a more uniform way to display and develop web pages and documents. Currently, all browsers support CSS, although each browser differs slightly in their rendering of elements and styles. With the adoption of CSS standards, web developers can design and develop web pages that are displayed nearly the same in every browser.