web制作勉強中です。

職業訓練校でweb制作を勉強しています。勉強のメモなど記録します。

【授業メモ】CSSセレクタ

 
ツリー構造の理解
HTMLを構成するツリー構造を理解する
要素を図に書くなどして、整理すること。
どことどこが対等で、どことどこが上下になっているか整理すること。
divが入れ子になって増えてくると、今自分がどこにいて、どこに何をしたいのか構造を理解していないと、効かせたい命令を正しい場所にすることができない。
 

例)

f:id:shima0web:20170821202937p:plain

 
 
 
テキスト82ページ セレクタ一覧参照
 
Aの子供のB →A>B
例) #containerの中にあるpだけ
#container > p {
  color: red;
}
 
<div id="container">
<p>テキスト1</p>
<div id="box">
<p>テキスト2</p>
<p>テキスト3</p>
</div><!--/#box-->
</div><!--/#container-->
 
#container > p {
  color: red;
}
 
#containerの中にあるpだけ赤くできる 
 
 
 
■子孫セレクタ
親Aに含まれるB→A B いつも使っている半角スペース
例)#containerの中にあるpすべて
#container  p {
  color: red;
}
 
<div id="container">
<p>テキスト1</p>
<div id="box">
<p>テキスト2</p>
<p>テキスト3</p>
</div><!--/#box-->
</div><!--/#container-->
 
#container  p {
  color: red;
}
 
#containerの中にあるp全て赤くなってしまうので、#boxのpも赤くなる
 
 
 
CSSの優先順位 点数制
セレクタには優先順位があり、点数計算して高得点のものが適用される
IDセレクタ > クラスセレクタ > タイプセレクタ(p,divなど)
の順で点数が大きく優先される!
書いた順番が優先されるのは、セレクタの種類が同じ場合であり、
セレクタの種類が異なる場合は書いた順番より、セレクタの強さ(点数)が優先される。
 
!importantというセレクタを無視する裏技もあるが、これは極力使わない。法則をすべて無視して優先されてしまうから。
#box p {
  color: red;
}
 
.txt p {
  color:blue;
}
 
→下に書いたほうが最新になるので、#box pがすべて赤くなり、その中の.txt pのみ青くなるかと思いきや、ならない!赤のまま!!!!!
→idのほうがclassより強いので、そちらが優先されてしまっている
 
 
 
p {
  color: red;
}
p.txt {
  color:blue;
}
→命令のスタート地点をそろえれば、詳しく書いてある方が優先されて青くなる!!!!
 
 
 
     

f:id:shima0web:20170821203010p:plain

後に書けばなんでも優先されるわけじゃないってことですね!!

idとclassをたくさんつけて、入れ子にして・・・っていう構造が最近増えてきたので、IDセレクタ > クラスセレクタ の力関係は注意しよう。