This question should be in the CSS forum...
The problem that you run into with web design is "inheritance" and I'll explain how it works:
Think of a web page as being built of layers. Each tag adds its own layer, kind of like stacking sheets of transparency film on top of each other. The first (bottom) layer is the body tag. All of the other tags that come between the <body> and </body> tag will
inherit the body tag’s attributes, unless you specify an attribute for a tag. So, let's break down a simple page. Comments follow the *...
<body class="newpage"> *The body tag has all of the properties assigned by the newpage class.
<table> *The table inherits the newpage class attributes that apply to tables, since no class or properties are specified.
<tr> *There are very few properties that apply to the tr tag. Some browsers will interpret properties assigned to the tr tag even though they normally wouldn’t apply, but it’s a very sloppy, non-standard way to write your CSS…
<td class="newrow"> *Now everything in this table cell will have the properties in the newrow class applied to it, plus any properties from the newpage class in the body tag. Any conflicts are resolved by giving the newrow class precedence over the newpage class since the newrow class is on a "higher layer".
</td>
</tr>
</table>
</body>
So, yes you would have to define a new CSS class and add it to every style sheet...