no, it's to do with the way that the standard were made..
first there was HTML
it's a markup language based on the same principals that you would use if you were setting type face for plate printing,
everything that is H1 would use the large heading plates
H2 would use the smaller
etc... etc...
but then as IE nd netscape (the then big boys of the browser world) developed they added in more tags until with html 4.01 pretty much everything to do with the entier page and the layou was in pure html
eg
<font colour="red" size="12" align=left>test</font>
(the font tag was one of the ones introduced after the standard was made).
so to iron out the differences between content and layout the w3c people invented style sheets, in this way a style could be applied to an element usenig either classes (which had just been introduced in HTML4 or ids (again introduced in HTML4)
classes are (or should) be used to assign style (or layout) properties that are used again and again (eg, imag float to right of screen and wrap text around image box, or dotted borders around paragraphs etc...
id's are (or should be) unique, so the styles applied in an ID should only be applied to a single element.
(in the example ID was probably more accurate since there was only one text link div and in the larger document there would still only be one text link over the main logo - but in that simple and reduced example it's difficult to say for sure)...
so that's the theory behind it...
the code that I gave works either way, (either using IDs or classes)
the only time you'll ever really notice the difference between the two is when working with javascrit when you can have...
<div id="test" class="testnormal" onmousover="this.style='testmouseover';" onclick="function()">
so the on mouse over event can change the style and the onclick even could change perhaps the content of the div, but the div is identified using the ID (snice the ID should be unique...
-----
to answer a question from a different thread.
in older revisions of HTML not all tags had to be closed.
but in the xhtml standard all tags have to be closed
hence <br> is html compliant and fine, but since the tag never close it's not xhtml compliant.
hence <br />
also hence things like
<input name="test" > should be <input name="test" />
also tags should be closed in the same order they were opned.
<b><i>hello</b></i> is wrong and should be
<b><i>hello</i></b>
but that's all symantics... IMO if it works don't worry!
(hope that all made sense).