回答編集履歴

6

説明を修正しました

2022/02/27 05:50

投稿

PlugOut777
PlugOut777

スコア917

test CHANGED
@@ -5,7 +5,7 @@
5
5
  そのため、要素を追加せずにfirst-childで実現するのは厳しそうです。
6
6
 
7
7
  無理矢理ですが、以下のCSSを考えてみました。
8
- 「classに[item sub]を持つliがの要素ではない」かつ「ul配下で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

想定外パターンを網羅するようにセレクタを修正

2022/02/27 05:46

投稿

PlugOut777
PlugOut777

スコア917

test CHANGED
@@ -16,11 +16,11 @@
16
16
  background-color: #aaa;
17
17
  }
18
18
 
19
- ul li.item.sub:not(li.item.sub+li.item.sub) {
19
+ ul li.item.sub:not(li.item.sub ~ li.item.sub) {
20
- background-color: #666; /* の要素が[li.item.sub]ない場合に[ul li.item.sub]に対してスタイルを当てる */
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

問題があったの補足

2022/02/27 05:38

投稿

PlugOut777
PlugOut777

スコア917

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

括弧の修正

2022/02/27 04:58

投稿

PlugOut777
PlugOut777

スコア917

test CHANGED
@@ -5,7 +5,7 @@
5
5
  そのため、要素を追加せずにfirst-childで実現するのは厳しそうです。
6
6
 
7
7
  無理矢理ですが、以下のCSSを考えてみました。
8
- 「classに[item sub]を持つliが直前の要素ではない] かつ[ul配下で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

コメントの修正

2022/02/27 04:57

投稿

PlugOut777
PlugOut777

スコア917

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 の次のタグにli.item.subが来ない場合だけスタイルを当てる */
20
+ background-color: #666; /* 直前の要素が[li.item.sub]でない場合[ul li.item.sub]に対してスタイルを当てる */
21
21
  }
22
22
  ```

1

説明に誤りがあったので修正しました

2022/02/27 04:56

投稿

PlugOut777
PlugOut777

スコア917

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;