Ich meine, dass liegt daran, weil du vorher für DIV schon allgemein etwas definiert hattest. Wenn du nur #id schreibst wie aber die Definition für DIV nicht überschreiben, wenn du aber eindeutig sagst, der DIV mit der #ID dann wirds überschrieben...
Aber sollten untergeordnete Anweisungen die von darüber nicht überschreiben?
Es wäre sinnvoll, Deine DIV-Suppe zu entsorgen und semantischen Code zu schreiben. Wenn ich schon wieder diesen Irrsinn lese von wegen
<div id="quatsch"><a href="#">Link</a></div>
*grrr*
Ööööh ... :D
Was genau ist daran schlecht/falsch? Natürlich steht in dem div mehr als nur dieser Link. Einen einzelnen Link formatiere ich direkt, aber hier geht's um ein div mit Text, wo halt zwischendrin Links stehen, die ich gerne generell über die id des divs ansprechen wollte. also:
<div id="meine_id">
<h1>Überschrift</h1>
<p> Toller Text .. <a href="#">Link</a> ... </p>
</div>
(ich dachte, ich lasse den ganzenText drumherum mal für das Beispiel weg :))