SlideShare a Scribd company logo
1 of 11
ご存知、ないのですか?
  CSS の優先順位
   Yumi Ishizaki
    20120821
CSSの優先順位の基本
 Html内のCSS>ユーザーCSS>ブラウザ標準style

 Body内Style=“” >head内に直接css>外部css

 最後に記述した方が優先的に表示される

 !important が優先される
     あくまで裏ワザ!
      とっても困った時に使おう!
     使いすぎると、どこで!important宣言したか分からな
      くなって「!important探しの旅」に出ないといけない。
      めんどくさい。
     あと、重くなる気がする
まだあった優先順位
IDやclassを組み合わせたセレクタ文字列
          ↓
その「セレクタ文字列」の塊に点数をつけて
    多い方が優先されちゃう!
例:sampleは何色?
                  html                           css


<div id="blue">
  <p class=”nice red text">                          0.0.0.1
                                  p {color:green;} /*?点*/
  sample                          #blue p {color:blue;} /*?点*/
                                                           0.1.0.1
  </p>                            p.nice.red.text {color:red;} /*?点*/
                                                                 0.0.3.1
</div>​




                              sample
                         点数が多い「セレクタ文字列」が
                             表示されるよ!
仕様
 W3Cを「css specificity」でググれば出てくる
  かと!
   Css3 :http://www.w3.org/TR/2011/REC-css3-
     selectors-20110929/#specificity
   Css2:
     http://www.w3.org/TR/CSS21/cascade.html#
     specificity

 CSS3とCSS2の違いは、「Style=“”」があるか無
  いかの差だけっぽい
文字列セレクタに
     点数みたいなの付ける

                                     個数を連結し
   セレクタ文字列                           て、バージョ
                   それぞれ何個あ
   をタイプ別に仕
                    るか数える
                                     ン表記のよう
      分                              なものをつく
                                       る




                 B-typeセレクタが1個、
                                   0.1.14.0
これはB-typeセレクタ、   C-typeセレクタが14個…   バージョン表記/日付表記
これはC-typeセレクタ…                     っぽいのをイメージ…
                                   「14」はイチヨンではなく
                                   ジュウヨンと読む
セレクタ文字列の仕分
   A→ Style=“”
    (css3では無くなってる)

   B→ id
       #hogeとか

   C→ class、属性セレクタ、擬似クラス
     .class
     [title=“”]など(属性セレクタ)
     :hover など(擬似クラス)

   D→ 要素、擬似要素
       Htmlタグ
       :first-line、:after など(擬似要素)
旧:セレクタ文字列に点数
                 ×1000   ×100       ×10       ×1

セレクタ文字列          A       B      C         D        合計点    優先度
                                                          低い
*                0       0      0         0          0

li               良くない説明だった
                  0   0  0  1                        1

li:first-line     0 (´・ω・`)
                      0  0  2                        2

ul li            0       0      0         2          2
ul ol+li         0       0      0         3          3
h1 + *[rel=up]   0       0      1         1         11
ul ol li.red     0       0      1         3         13
li.red.level     0       0      2         1         21
#x34y            0       1      0         0         100   優先度
Style=“”         1       0      0         0        1000   高い
改:セレクタ文字列に点数
                                 小数点じゃなくて
                             バージョン表記/日付表記っぽいのを
                                  イメージして

セレクタ文字列          A   B   C     D        点数       優先度
                                                 低い
*                0   0   0     0      0.0.0.0

li               0   0   0     1      0.0.0.1

li:first-line    0   0   0     2      0.0.0.2

ul li            0   0   0     2      0.0.0.2
ul ol+li         0   0   0     3      0.0.0.3
h1 + *[rel=up]   0   0   1     1      0.0.1.1
ul ol li.red     0   0   1     3      0.0.1.3
li.red.level     0   0   2     1      0.0.2.1
#x34y            0   1   0     0      0.1.0.0    優先度
Style=“”         1   0   0     0      1.0.0.0    高い
注意!
 ブラウザによって違うこともあるかも
     対応してない要素があるので…

 基本的に
  A(style=“”)>B(#idなど)>C(.classなど)>D
     .classが10個以上あっても#idには勝てない!
     ブラウザによって256個以上あると勝てちゃったりす
      るようです

 例えば「0.1.14.0」の場合は、
  「いち点いちよん」じゃなくて
  「いち点じゅうよん」って読むと分かりやすいかも
おわり
スマートでメンテしやすいCSSを書いて
      モテモテに!

More Related Content

Viewers also liked

サルでもわかるHTML5超入門
サルでもわかるHTML5超入門サルでもわかるHTML5超入門
サルでもわかるHTML5超入門tomo kaneko
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSTakeharu Igari
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!Yuji Nojima
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうToshiaki Sasaki
 
情報編集(Web) 第6回:CSS入門 - 2 ボックスモデルを理解する
情報編集(Web)  第6回:CSS入門 - 2 ボックスモデルを理解する情報編集(Web)  第6回:CSS入門 - 2 ボックスモデルを理解する
情報編集(Web) 第6回:CSS入門 - 2 ボックスモデルを理解するAtsushi Tadokoro
 
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5George Harada
 
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現CSS - ボックスモデルを理解する - 千葉商科大学 Web表現
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現Atsushi Tadokoro
 
CSS勉強会(第1回)
CSS勉強会(第1回)CSS勉強会(第1回)
CSS勉強会(第1回)Bao Linh Le
 
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」Takashi Kitamura
 
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?Microsoft
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1Nishida Kansuke
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tipsyoshikawa_t
 
マークアップとUX
マークアップとUXマークアップとUX
マークアップとUXuenoyuuki
 
CSSコーディングを効率よくするおすすめプラグイン
CSSコーディングを効率よくするおすすめプラグインCSSコーディングを効率よくするおすすめプラグイン
CSSコーディングを効率よくするおすすめプラグインShogo Tamura
 
WordPress基礎講座1 CMSの概要
WordPress基礎講座1 CMSの概要WordPress基礎講座1 CMSの概要
WordPress基礎講座1 CMSの概要Akinori Kawamitsu
 
レスポンシブWeb「デザイン」
レスポンシブWeb「デザイン」レスポンシブWeb「デザイン」
レスポンシブWeb「デザイン」uenoyuuki
 
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴西畑 一馬
 
UI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめUI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめTomoki Imatomi
 
スマートフォン対応、気をつけたいトラブル JavaScript編
スマートフォン対応、気をつけたいトラブル JavaScript編スマートフォン対応、気をつけたいトラブル JavaScript編
スマートフォン対応、気をつけたいトラブル JavaScript編Hiroaki Wakamatsu
 

Viewers also liked (20)

サルでもわかるHTML5超入門
サルでもわかるHTML5超入門サルでもわかるHTML5超入門
サルでもわかるHTML5超入門
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
情報編集(Web) 第6回:CSS入門 - 2 ボックスモデルを理解する
情報編集(Web)  第6回:CSS入門 - 2 ボックスモデルを理解する情報編集(Web)  第6回:CSS入門 - 2 ボックスモデルを理解する
情報編集(Web) 第6回:CSS入門 - 2 ボックスモデルを理解する
 
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
 
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現CSS - ボックスモデルを理解する - 千葉商科大学 Web表現
CSS - ボックスモデルを理解する - 千葉商科大学 Web表現
 
CSS勉強会(第1回)
CSS勉強会(第1回)CSS勉強会(第1回)
CSS勉強会(第1回)
 
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」
38回/デザイン勉強会@赤羽「これからはじめるWebデザイン〜Webデザイナーに必要なもの〜」
 
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
HTML5とはなにか?マイクロソフトはHTML5をどう考えているのか?
 
⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
マークアップとUX
マークアップとUXマークアップとUX
マークアップとUX
 
CSSコーディングを効率よくするおすすめプラグイン
CSSコーディングを効率よくするおすすめプラグインCSSコーディングを効率よくするおすすめプラグイン
CSSコーディングを効率よくするおすすめプラグイン
 
AWS基礎
AWS基礎AWS基礎
AWS基礎
 
WordPress基礎講座1 CMSの概要
WordPress基礎講座1 CMSの概要WordPress基礎講座1 CMSの概要
WordPress基礎講座1 CMSの概要
 
レスポンシブWeb「デザイン」
レスポンシブWeb「デザイン」レスポンシブWeb「デザイン」
レスポンシブWeb「デザイン」
 
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
CSS3 / JavaScriptで作るスマートフォンUIと落とし穴
 
UI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめUI設計におけるスマートフォン対応のまとめ
UI設計におけるスマートフォン対応のまとめ
 
スマートフォン対応、気をつけたいトラブル JavaScript編
スマートフォン対応、気をつけたいトラブル JavaScript編スマートフォン対応、気をつけたいトラブル JavaScript編
スマートフォン対応、気をつけたいトラブル JavaScript編
 

More from Yumi uniq Ishizaki

スクラムする前に知って欲しいアジャイルさんっぽいこと
スクラムする前に知って欲しいアジャイルさんっぽいことスクラムする前に知って欲しいアジャイルさんっぽいこと
スクラムする前に知って欲しいアジャイルさんっぽいことYumi uniq Ishizaki
 
デザイナーにGitは必要?
デザイナーにGitは必要?デザイナーにGitは必要?
デザイナーにGitは必要?Yumi uniq Ishizaki
 
connpass design at BPStudy #88
connpass design at BPStudy #88connpass design at BPStudy #88
connpass design at BPStudy #88Yumi uniq Ishizaki
 
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Pythonと出会ったデザイナーの話 #PyLadiesTokyoPythonと出会ったデザイナーの話 #PyLadiesTokyo
Pythonと出会ったデザイナーの話 #PyLadiesTokyoYumi uniq Ishizaki
 
Oocssとかついでにsmacssとbemの話も
Oocssとかついでにsmacssとbemの話もOocssとかついでにsmacssとbemの話も
Oocssとかついでにsmacssとbemの話もYumi uniq Ishizaki
 
絵描きさんあるあるPhotoshop技 DIST3
絵描きさんあるあるPhotoshop技 DIST3絵描きさんあるあるPhotoshop技 DIST3
絵描きさんあるあるPhotoshop技 DIST3Yumi uniq Ishizaki
 
真のレシポンシブって何だろう
真のレシポンシブって何だろう真のレシポンシブって何だろう
真のレシポンシブって何だろうYumi uniq Ishizaki
 
とっさのデザイン〜ボタン編〜
とっさのデザイン〜ボタン編〜とっさのデザイン〜ボタン編〜
とっさのデザイン〜ボタン編〜Yumi uniq Ishizaki
 
アイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることアイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることYumi uniq Ishizaki
 
Semantic html が止まらない
Semantic html が止まらないSemantic html が止まらない
Semantic html が止まらないYumi uniq Ishizaki
 

More from Yumi uniq Ishizaki (11)

スクラムする前に知って欲しいアジャイルさんっぽいこと
スクラムする前に知って欲しいアジャイルさんっぽいことスクラムする前に知って欲しいアジャイルさんっぽいこと
スクラムする前に知って欲しいアジャイルさんっぽいこと
 
デザイナーにGitは必要?
デザイナーにGitは必要?デザイナーにGitは必要?
デザイナーにGitは必要?
 
connpass design at BPStudy #88
connpass design at BPStudy #88connpass design at BPStudy #88
connpass design at BPStudy #88
 
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Pythonと出会ったデザイナーの話 #PyLadiesTokyoPythonと出会ったデザイナーの話 #PyLadiesTokyo
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
 
Oocssとかついでにsmacssとbemの話も
Oocssとかついでにsmacssとbemの話もOocssとかついでにsmacssとbemの話も
Oocssとかついでにsmacssとbemの話も
 
絵描きさんあるあるPhotoshop技 DIST3
絵描きさんあるあるPhotoshop技 DIST3絵描きさんあるあるPhotoshop技 DIST3
絵描きさんあるあるPhotoshop技 DIST3
 
真のレシポンシブって何だろう
真のレシポンシブって何だろう真のレシポンシブって何だろう
真のレシポンシブって何だろう
 
とっさのデザイン〜ボタン編〜
とっさのデザイン〜ボタン編〜とっさのデザイン〜ボタン編〜
とっさのデザイン〜ボタン編〜
 
アイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることアイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやること
 
とある色の決め方
とある色の決め方とある色の決め方
とある色の決め方
 
Semantic html が止まらない
Semantic html が止まらないSemantic html が止まらない
Semantic html が止まらない
 

ご存知、ないのですか?CSSの優先順位

  • 1. ご存知、ないのですか? CSS の優先順位 Yumi Ishizaki 20120821
  • 2. CSSの優先順位の基本  Html内のCSS>ユーザーCSS>ブラウザ標準style  Body内Style=“” >head内に直接css>外部css  最後に記述した方が優先的に表示される  !important が優先される  あくまで裏ワザ! とっても困った時に使おう!  使いすぎると、どこで!important宣言したか分からな くなって「!important探しの旅」に出ないといけない。 めんどくさい。  あと、重くなる気がする
  • 3. まだあった優先順位 IDやclassを組み合わせたセレクタ文字列 ↓ その「セレクタ文字列」の塊に点数をつけて 多い方が優先されちゃう!
  • 4. 例:sampleは何色? html css <div id="blue"> <p class=”nice red text"> 0.0.0.1 p {color:green;} /*?点*/ sample #blue p {color:blue;} /*?点*/ 0.1.0.1 </p> p.nice.red.text {color:red;} /*?点*/ 0.0.3.1 </div>​ sample 点数が多い「セレクタ文字列」が 表示されるよ!
  • 5. 仕様  W3Cを「css specificity」でググれば出てくる かと!  Css3 :http://www.w3.org/TR/2011/REC-css3- selectors-20110929/#specificity  Css2: http://www.w3.org/TR/CSS21/cascade.html# specificity  CSS3とCSS2の違いは、「Style=“”」があるか無 いかの差だけっぽい
  • 6. 文字列セレクタに 点数みたいなの付ける 個数を連結し セレクタ文字列 て、バージョ それぞれ何個あ をタイプ別に仕 るか数える ン表記のよう 分 なものをつく る B-typeセレクタが1個、 0.1.14.0 これはB-typeセレクタ、 C-typeセレクタが14個… バージョン表記/日付表記 これはC-typeセレクタ… っぽいのをイメージ… 「14」はイチヨンではなく ジュウヨンと読む
  • 7. セレクタ文字列の仕分  A→ Style=“” (css3では無くなってる)  B→ id  #hogeとか  C→ class、属性セレクタ、擬似クラス  .class  [title=“”]など(属性セレクタ)  :hover など(擬似クラス)  D→ 要素、擬似要素  Htmlタグ  :first-line、:after など(擬似要素)
  • 8. 旧:セレクタ文字列に点数 ×1000 ×100 ×10 ×1 セレクタ文字列 A B C D 合計点 優先度 低い * 0 0 0 0 0 li 良くない説明だった 0 0 0 1 1 li:first-line 0 (´・ω・`) 0 0 2 2 ul li 0 0 0 2 2 ul ol+li 0 0 0 3 3 h1 + *[rel=up] 0 0 1 1 11 ul ol li.red 0 0 1 3 13 li.red.level 0 0 2 1 21 #x34y 0 1 0 0 100 優先度 Style=“” 1 0 0 0 1000 高い
  • 9. 改:セレクタ文字列に点数 小数点じゃなくて バージョン表記/日付表記っぽいのを イメージして セレクタ文字列 A B C D 点数 優先度 低い * 0 0 0 0 0.0.0.0 li 0 0 0 1 0.0.0.1 li:first-line 0 0 0 2 0.0.0.2 ul li 0 0 0 2 0.0.0.2 ul ol+li 0 0 0 3 0.0.0.3 h1 + *[rel=up] 0 0 1 1 0.0.1.1 ul ol li.red 0 0 1 3 0.0.1.3 li.red.level 0 0 2 1 0.0.2.1 #x34y 0 1 0 0 0.1.0.0 優先度 Style=“” 1 0 0 0 1.0.0.0 高い
  • 10. 注意!  ブラウザによって違うこともあるかも  対応してない要素があるので…  基本的に A(style=“”)>B(#idなど)>C(.classなど)>D  .classが10個以上あっても#idには勝てない!  ブラウザによって256個以上あると勝てちゃったりす るようです  例えば「0.1.14.0」の場合は、 「いち点いちよん」じゃなくて 「いち点じゅうよん」って読むと分かりやすいかも