回答編集履歴

1

詳細度算出の対応表

2017/12/04 03:01

投稿

think49
think49

スコア18164

test CHANGED
@@ -2,9 +2,95 @@
2
2
 
3
3
 
4
4
 
5
- 下記URLの「セレクタの詳細性を計算する」が該当すると思います。
5
+ 下記リンク先の「セレクタの詳細性を計算する」が該当すると思います。
6
6
 
7
+
8
+
7
- https://teratail.com/questions/86578
9
+ - [HTML - divの中のpの中のaの中のimgにCSSを適応させるにはどのように書けば良いですか?(86578)|teratail](https://teratail.com/questions/86578)
10
+
11
+
12
+
13
+ ### 詳細度算出の対応表
14
+
15
+
16
+
17
+ - [16. 選択子の詳細度の計算法 - Selectors Level 4 (日本語訳)](https://triple-underscore.github.io/selectors4-ja.html#specificity-rules)
18
+
19
+
20
+
21
+ 識別子の説明。
22
+
23
+
24
+
25
+ |識別子|説明|
26
+
27
+ |:--|:--|
28
+
29
+ |A|IDセレクタ (`#foo`) の数|
30
+
31
+ |B|classセレクタ(`.bar`)、属性セレクタ(`[piyo="sample"]`)、疑似クラス(`:hover`)の数|
32
+
33
+ |C|型セレクタ(`li`)、疑似要素(`::after`)の数|
34
+
35
+
36
+
37
+ セレクタ例示別の詳細度比較表。
38
+
39
+
40
+
41
+ |セレクタ|A|B|C|
42
+
43
+ |:--|:--|:--|:--|
44
+
45
+ |*|0|0|0|
46
+
47
+ |LI|0|0|1|
48
+
49
+ |UL LI|0|0|2|
50
+
51
+ |UL OL+LI|0|0|3|
52
+
53
+ |H1 + *[REL=up]|0|1|1|
54
+
55
+ |UL OL LI.red|0|1|3|
56
+
57
+ |LI.red.level|0|2|0|
58
+
59
+ |#x34y|1|0|0|
60
+
61
+ |#s12:not(FOO)|1|0|1|
62
+
63
+
64
+
65
+ 注意点。
66
+
67
+ (※詳細は [16. 選択子の詳細度の計算法 - Selectors Level 4 (日本語訳)](https://triple-underscore.github.io/selectors4-ja.html#specificity-rules)を参照して下さい)。
68
+
69
+
70
+
71
+ - 全称セレクタ(`*`)は無視する
72
+
73
+ - 結合子(combinator)は無視する(例: `>` や `+` など)
74
+
75
+ - `:matches()` 疑似クラスの詳細度は、その引数を展開したセレクタの詳細度に置換される
76
+
77
+ - `:is()` 疑似クラスの詳細度は 0 に置換される
78
+
79
+ - `:not()` 疑似クラスの詳細度は「その引数であるセレクタリスト内で,最も詳細度の高い複体セレクタ」の詳細度に置換される。
80
+
81
+
82
+
83
+ ### 個別に覚える
84
+
85
+
86
+
87
+ > Bracketに必要なものが何点ということがわかれば、いちいち個別b覚えなくてすむと思うのですが。
88
+
89
+
90
+
91
+ 仮に詳細度を自動算出する仕組みがあったとしても、「詳細度算出の原理」が理解できていなければ、適切な詳細度を割り当てる為にトライアンドエラーを何度も繰り返す事になります。
92
+
93
+ トライアンドエラーの回数を減らす為には、詳細度の原理を記憶しておく必要があります。
8
94
 
9
95
 
10
96