回答編集履歴
6
説明を修正しました
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
そのため、要素を追加せずにfirst-childで実現するのは厳しそうです。
|
6
6
|
|
7
7
|
無理矢理ですが、以下のCSSを考えてみました。
|
8
|
-
「classに[item sub]を持つliが
|
8
|
+
「classに[item sub]を持つliが前に存在しない」かつ「ul配下でclassに[item sub]を持つli」に対して、スタイルを当てる方法です。
|
9
9
|
```CSS
|
10
10
|
ul li.item {
|
11
11
|
background-color: #eee;
|
5
想定外パターンを網羅するようにセレクタを修正
test
CHANGED
@@ -16,11 +16,11 @@
|
|
16
16
|
background-color: #aaa;
|
17
17
|
}
|
18
18
|
|
19
|
-
ul li.item.sub:not(li.item.sub
|
19
|
+
ul li.item.sub:not(li.item.sub ~ li.item.sub) {
|
20
|
-
background-color: #666; /*
|
20
|
+
background-color: #666; /* 前に[li.item.sub]の要素が存在しない場合に[ul li.item.sub]に対してスタイルを当てる */
|
21
21
|
}
|
22
22
|
```
|
23
23
|
|
24
24
|
追記.
|
25
|
-
すみません、ただこの後に一つでも[item sub]以外の要素が挟まってしまうと、再びスタイルが当たってしまいますね。
|
26
|
-
|
25
|
+
何度か回答を修正してすみません。
|
26
|
+
最初に出した案では実現できないケースがあったので、セレクタの指定を一部直しました。
|
4
問題があったの補足
test
CHANGED
@@ -20,3 +20,7 @@
|
|
20
20
|
background-color: #666; /* 直前の要素が[li.item.sub]でない場合に[ul li.item.sub]に対してスタイルを当てる */
|
21
21
|
}
|
22
22
|
```
|
23
|
+
|
24
|
+
追記.
|
25
|
+
すみません、ただこの後に一つでも[item sub]以外の要素が挟まってしまうと、再びスタイルが当たってしまいますね。
|
26
|
+
あくまでも案として受け取ってください。
|
3
括弧の修正
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
そのため、要素を追加せずにfirst-childで実現するのは厳しそうです。
|
6
6
|
|
7
7
|
無理矢理ですが、以下のCSSを考えてみました。
|
8
|
-
「classに[item sub]を持つliが直前の要素ではない
|
8
|
+
「classに[item sub]を持つliが直前の要素ではない」かつ「ul配下でclassに[item sub]を持つli」に対して、スタイルを当てる方法です。
|
9
9
|
```CSS
|
10
10
|
ul li.item {
|
11
11
|
background-color: #eee;
|
2
コメントの修正
test
CHANGED
@@ -17,6 +17,6 @@
|
|
17
17
|
}
|
18
18
|
|
19
19
|
ul li.item.sub:not(li.item.sub+li.item.sub) {
|
20
|
-
background-color: #666; /* li.item.sub
|
20
|
+
background-color: #666; /* 直前の要素が[li.item.sub]でない場合に[ul li.item.sub]に対してスタイルを当てる */
|
21
21
|
}
|
22
22
|
```
|
1
説明に誤りがあったので修正しました
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
そのため、要素を追加せずにfirst-childで実現するのは厳しそうです。
|
6
6
|
|
7
7
|
無理矢理ですが、以下のCSSを考えてみました。
|
8
|
-
「classに[item sub]を持つ
|
8
|
+
「classに[item sub]を持つliが直前の要素ではない] かつ[ul配下でclassに[item sub]を持つli」に対して、スタイルを当てる方法です。
|
9
9
|
```CSS
|
10
10
|
ul li.item {
|
11
11
|
background-color: #eee;
|