CSS is the easiest thing ever. The people who try to explain it make it unnecessarily difficult when it really isn't. Here is a 20 second example.
The HTML way, 1 file called page.html:
Code:
<p><font color="red">This text is red</font></p>
The ideal CSS way, 2 files:
page.html:
Code:
<link rel="stylesheet" type="text/css" href="page.css" />
<p class="myColoredText">This text is red</p>
page.css:
Code:
.myColoredText { color:red; }
With plain HTML, what do you do if you have 100 <p>s to change? You have to go through them all one-by-one and change them. With CSS, page.html will link to page.css. Change the color of the .myColoredText class in page.css, and every <p> of class "myColoredText" will get updated automatically.
Classes are very useful but you can also apply styles to every certain element, like, for example, all <h4> elements:
So I want a bunch of red <p>s, but I want one of them to be italic. Let's use inline CSS for that:
Code:
<p class="myColoredText">Some colored text</p>
<p class="myColoredText">Some colored text</p>
<p class="myColoredText" style="font-style:italic">Some colored text</p>
<p class="myColoredText">Some colored text</p>
Of course beyond color, CSS can control font size, widths, margins, etc. of everything.
There is of course more to it, but that is the basic idea. Separate content from presentation. Content = what is in the HTML file(s). Presentation = what is in the CSS file(s).