Issue
Consider the following CSS:
* { font-family: Gill Sans, Verdana, Arial, Helvetica, Sans-Serif}
p { font-family: Courier; }
And then this markup:
<p>Hi there. So <em>very</em> pleased to make your acquaintance.</p>
Why does the <em> display in Gill Sans? Or rather, why does the wildcard override the <p>. I guess I can see -some- logic in this if every tag has the same 'weight', but it still seems like a 'bug' to me intuitively... and it tends to make for more markup for me in that I can't assume that <em> will -only- affect the font-style in a particular way.
In short, is there a way to have 'modifiers' like <em> only operate on specific features?
Solution
* matches every element, including the <em> inside the <p>.
The <em> would have inherited the font from the <p>, but the * overrides it.
You should almost never use *.
If you want to apply a global font, set it to body, so that other rules can override it for specific elements and cascade to their descendants.
Answered By - SLaks