Because the actual headers text lie inside an
<a>[/m] element for the anchor. Since any CSS for the anchors ([m]h1 a {[/m] or more specifically: [m]h1 > a {[/m]) has more specificity than simply pointing to the h* element ([m]h1 {[/m]), you need to use either the anchors or [m]!important (not recommended, since it will override the
user's styles as well) to stylize them.
If you want to override layout or boxing (for borders, etc), you can style the h1 element alone, but for the actual text and its effects you *need* to target the anchor element.
Check here for more info: [1]
[1]
http://www.dokuwiki.org/tips:styling-headers