Unless you need to be WC3 compliant, you can actually name all of the elements the same (although I strongly advise against it) and the page will probably still function.
To answer your ?, yes.
In the following example you can:
Change the style.css definition for headerbar (see quote),
OR
Name the element a name not defined in style.css (say myheadertable) and use HTML to mark up the text, avoiding css altogether
OR
Name the element a different name and create a definition for that element in style.css.
EXAMPLE:
in theme.html you can find the following:
<td id="headerbar" blah blah blah
it is id="headerbar" that ties the CSS style of the named element in the theme.html to the style description in style.css (the quote is the corresponding entry in style.css)
Quote:
td#headerbar {border-bottom: 1px solid #dddddd; background-image: url(hbar.gif);}
So look at the theme.html, figure out the elements you need to change, see if there is an entry for that specific element in style.css, make your changes any way outlined above.
You can define as much or as little as you want... just remember if you do not define an element specifically, and that element type is defined in your style sheet, the style sheet definition will take presedence...
eg.
1. <table id="mytable">
vs.
2. <table>
with style.css defining:
a. table {width: 100%; margin: 5; padding: 5; font-size: small}
b. table#mytable {width: 750; margin: 0; padding: 0; font-size: large}
1. will call b
2. will default to a
If A was not included in style.css, you could HTML code 2, but since it is defined, if you include HTML markup in the <table> tag you will create a conflict and may get funky results.
Hope that helps.