ちょっと前から気にはなっていたがそんなに深くまで調べたことが

なくて最近、どうなってんだ!ってことで調べました。

かなり勉強になりました。

cssの優先順位はポイントによって決まるそうです。

ちなみに !important 宣言をすると最優先されるそうです。

こんな感じで!
div#sample p {
 color: black !important;
}

CSSの優先順位~CSSテクニック~

以下引用です。

セレクタのポイント獲得ルール

*(全称セレクタ) 0ポイント
p,h1 などのタグ 1ポイント
.sample(classの場合)10ポイント
#sample(IDの場合) 100ポイント

ポイントはセレクタを複数並べることで加算されていく

p.sample=1+10=11ポイント
.sample p=10+1=11ポイント
.sample li p=10+1+1=12ポイント
#sample .sample=100+10=110ポイント
#sample .sample p=100+10+1=111ポイント

獲得ポイントが同じならば、後に書いたスタイルが優先される。

CSSに関する基本的なこと4(優先順位、セレクタの組み合わせ)|CSS HappyLife