はじめてのCSS:やさしさいっぱいのCSSが肌にしみこむ!カモ。

セレクタの優先順位

セレクタの強さマンガ:1ページ目
トモ・リーン

きちんとセレクタを付けているのに、スタイルが適用されていないことってない?

ケンジ

おー、あるある! 日常茶飯事だゼ~~

トモ・リーン

凡ミスってことも良くあるけど...

トモ・リーン

実はセレクタには「強さ」があります!!

ケンジ

ナニソレ〜???

セレクタの強さマンガ:2ページ目
トモ・リーン

まず「*」 これは超弱いです。 最強は「#」ね!

ケンジ

そうなの???

トモ・リーン

セレクタの強さとは、スタイルの優先順位のことです。

ケンジ

普通はセレクタが示す部分がかぶるときは最後のスタイルが優先されるよね?

セレクタの強さマンガ:3ページ目 実際のサンプルを見る
トモ・リーン

これが順番だけじゃないのよね。強さの秘密はこうなの!!

強 > id(#) > class(.) > 要素(htmlタグなど) > 全称(*) > 弱
ケンジ

数字が具体的な強さってわけか!

トモ・リーン

後に書いているのにスタイルが優先されない場合はidとclassの付け方もチェックしましょうね!

ケンジ

やるぜ!

トモ・リーン
もっと詳細に点数を付けると以下のようになります。
(2011/01/16追記さらに011/01/19修正)
ちなみに、たくさんclassをつけてもidより強くなれたりはしません!!
種類 指定例 強さ メモ
全称 * ★☆☆☆☆  
要素 p ★★☆☆☆ HTMLタグのこと
class .sample ★★★☆☆  
属性セレクタ a[href] ★★★☆☆ IE6では無効のセレクタなので注意
疑似クラス a:link  ★★★☆☆ IE6、IE7では「:focus」など効かないものが複数あるので注意
id #sample ★★★★☆  
要素への直接指定 style="" ★★★★★ HTMLなどに直書きしたときの指定方法
今回のポイント!
最後に書いているのに適用されない場合は、別のところでidやclassをたくさん付けた指定があるかも知れません。
Dreamweaverを持っている人は「ウィンドウ>CSSスタイル」で「現在」ボタンを使うと探しやすいですよ。

コメント(4)
西畑一馬

セレクタの点数付けはCSS2の名残ですので、CSS2.1用に説明を変えたほうがよいかも。

下記の記事が参考になりますよ。

2011/01/15
佐藤とも子 Author Profile Page

なぜかaタグの続きが切れちゃっていたので、調べておきますね!
情報ありがとうございます!!

2011/01/15
佐藤とも子 Author Profile Page

追記で、CSS2.1の内容もいれました!

2011/01/16
佐藤とも子 Author Profile Page

http://www.extype.com/karakuri/archives/2008/05/css_2.html を参考に内容を修正しました!
記事を書いていただいたカラクリエイトさん、お知らせいただいた西畑さん、ありがとうございます!!

2011/01/19