cssの勉強をしているときに最初理解できなかったのは繰り返し同じスタイルをしている記述があったこと。cssでは親のスタイルは子供に引き継がれる。例えば <body>でcolor : green; を指定したらその子要素もgreenになるから、子要素で改めてcolor : greenと出ることはないはず。しかし実際には繰り返し子要素でもcolor : greenがでることがある。
よく見ると特定のタグに偏っている。例えば <a>である。実はhtmlではデフォルトスタイルが決まっているタグがいくつかある。<a>ではcolor : blueが指定されているためにbodyのgreenは上書きされてしまうために繰り返し記述する。
他にもどんなデフォルトスタイルがあるのかと思って探してみたらw3cで決まっていた。
http://www.w3.org/TR/CSS2/sample.html
これによればcolor, margin, padding, boaderなどが指定されているタグもあるので標準で使うタグについてはデフォルトスタイルを覚えておき、自分がデザインしたスタイルで上書きする必要がある。