違います。
「セレクタの優先度」は、誰が指定したか!!、important!(最重要宣言)があるかないかです。
これは詳細度(特異性)-selector's specificityです。
これらのカスケーディングの仕組みは、CSS(カスケーディング スタイル シート)と言われるくらいですから、CSSの根幹!!命!!といえる重要な仕組みです。
まっとうな説明サイトでしたら、まず単位に続いて、この部分が懇切丁寧に書かれているはずです。いきなりプロパティの説明に入るようでしたら、見ないほうが良いです。
まず、優先順位は
[ユーザーの最重要宣言]>[著者の最重要宣言]>[著者の宣言]>[ユーザーの宣言]>デフォルト(ブラウザ)の宣言
です。
次に、詳細度でソートされます。詳細度は基数が大きい4桁の数[a,b,c,d]で比較します。
基数とは10進数だと10,16進数だと16,2進数だと2
・・ここは大きい基数ですから位上がりはしないということです。
全称セレクタ 詳細度[0,0,0,0]
タイプセレクタ,擬似要素 [0,0,0,1]
要素セレクタ,クラスセレクタ,擬似クラスセレクタ[0,0,1,0]
一意セレクタ [0,1,0,0]
HTMLのstyle要素 [1,0,0,0]
HTMLの属性での指定(body bgcolor=redとか)は[0,0,0,0]
です。
そのうえで、「@importや外部スタイルシートはその場所に書かれている」とみなし、同じ優先度、詳細度の場合は後から書かれているもので上書きされます。
それぞれのプロパティには、継承するかしないかも決まっていますので、それも考慮すること。
CSS2以降、
hoge{ color: blue;}
#hoge{ color: red;}
ではありません。CSS2では基点セレクタを先に書きますから、上記は
*.hoge{ color: blue;}
*#hoge{ color: red;}
とみなされます。*(全称セレクタの詳細度は0、できれば、
p.hoge{ color: blue;}
div#hoge{ color: red;}
のほうがベスト(自分自身が分かりやすくなりますし、ブラウザに余計な処理させない)
p.hoge{ color: blue;} 詳細度は[0,0,1,1] 11
div#hoge{ color: red;} 詳細度は[0,1,0,1] 101
div.#hoge p.hoge[color:green;] 詳細度 [0,1,1,2] 詳細度 [0,1,1,2]
まあ、プロパティとかを書く前に、肝心な
5 Selectors( http://www.w3.org/TR/CSS2/selector.html )
6 Assigning property values, Cascading, and Inheritance( http://www.w3.org/TR/CSS2/cascade.html )
を徹底的に身につけましょう。
この部分は、【CSS2.1】では、【CSS2】からいくつか変更になっています。
★現在ウェブ標準は、【CSS2.1】のほうです。
お礼
回答ありがとうございます 検索しまくって継承の詳細度を調べてみました なんと、継承による詳細度は0点です! 道理で後に出てきた1点より弱くなるわけです^^; やっと疑問が解けました