CSS stands for Cascading Style Sheets. It's a simple mechanism for adding style (fonts, colors, positioning, spacing, size, etc) to Web documents (.html files).
Now that you know what it is, I'll tell you why you should use it.
3 simple words.
Because it's awesome!
I guess that could be 4 words... but that depends on how you look at it.
OK... right. Every one should just use CSS because joey101 says it's awesome... right... what ever...
SO, maybe I should tell you why it's awesome? Well, if that's the only way to get you to use it then I will. But if you decide to stop here, reading no further thinking, "I like making templates the way I am doing it currently," let me say this... Once you get a taste of using CSS, you WILL NOT want to turn back. I have yet to talk to a web developer that has learned how to use CSS and regretted it. They all say that it's the only way to go (in their own words, of course).
Why using CSS is awesome:
- It's fun.
- It increases the rate at which you can develop templates.
- It's a LOT EASIER to modify templates once you have created them.
- Once you get the hang of it, it will take a lot of headache out of creating templates.
- Websites that use CSS are more usable (for search engines and handicapped people).
- HTML tables were NOT meant to create the design of websites.
Yes, I really meant #6! Many many many people that design templates use tables to make the layout. Making a layout with tables, to use an adjective that I think makes no sense (but what a lot of high school kids use), sucks.
Think of it this way, HTML is for the content, and CSS is for displaying that content... once you get that down, CSS will seem a lot better.
Why making a layout with tables 'sucks':
- They take forever to type.
- It's a pain to search through everything to find a small part of your template to change the smallest thing.
- Everything is so messy (just stressing #2).
- It's hard to reuse anything... much unlike CSS, where pretty much everything is reusable.
- Your html files get miles long.
Not convinced? Which of the two examples do you think make more sense?
<table>
<tr>
<td>
This is the header.
</td>
</tr>
<tr>
<td>
This is the body.
</td>
</tr>
</table>
or
<div id="header">
This is the header.
</div>
<div id="body">
This is the body.
</div>
Not only is the bottom example a lot shorter, but it makes a lot more sense, don't you think?
Now say you want to style that. Say you want to put a border around the header and another border around the body.
With the first example... good luck. While with the second example, you don't have to change a bit of html. All you would have to do is in your css file, put:
#header, #body
{
border:1px solid #000;
}
I guess this wasn't the best example, as you could with the first example just do this in your css file:
td
{
border:1px solid #000;
}
As I said, that example wasn't a very good one... but real world templates get a lot more complex that just a simple header and a body with a border around each section. Check out https://joey101.net/2006/6/tutorial-how-make-good-xhtml-layout/ for a good example.
With CSS, you can do ANYTHING. yes, anything... and much more than you could ever do other wise. Now I will be honest with you... CSS isn't all roses, it may be hard at first, but every one who has taken the plunge has loved it.
You'll be amazed by what you can do with CSS, just give it a shot and you won't be sorry!
A good place to start learning is http://www.w3.org/Style/CSS/learning and http://www.htmldog.com/
You can also check out some of my tutorials for easy learning.
That's all... I'm done ranting... Thanks for reading! 
Joey