0

I got a few divs with class A, then I want to check that whether the first A has class B or not, if yes then apply some styles. Would like to use CSS only.

Update: the first div should be something else. For example,

Condition 1:

<div class="container">    
  <div class="C"></div>
  <div class="A"></div> <!-- don't apply style -->
  <div class="A B"></div>
  <div class="A"></div>
  <div class="A B"></div>
</div>

Condition 2:

<div class="container">
  <div class="C"></div>    
  <div class="A B"></div> <!--apply style -->
  <div class="A"></div>
  <div class="A"></div>
  <div class="A"></div>
</div>
Mingze Li
  • 360
  • 1
  • 10

1 Answers1

0

EDIT

As Christian Vincenzo Traina suggested in comment, select the second nth-of-type A that has the class B with .A:nth-of-type(2).B.

body {
  display: flex;
  justify-content: space-around;
}

.container {
  margin-bottom: 50px;
}

.A,
.C {
  width: 20px;
  height: 20px;
  border: 1px solid black;
}

.A:nth-of-type(2).B {
  background-color: orange;
}
<div class="container">
  <div class="C"></div>
  <div class="A"></div>
  <!-- don't apply style -->
  <div class="A B"></div>
  <div class="A"></div>
  <div class="A B"></div>
</div>
<div class="container">
  <div class="C"></div>
  <div class="A B"></div>
  <!--apply style -->
  <div class="A"></div>
  <div class="A"></div>
  <div class="A"></div>
</div>

OLDER ANSWER

note : the older question asked without the div.C class

Select the first-of-type A that has the class B with .A:first-of-type.B

body {
  display: flex;
  justify-content: space-around;
}

.container {
  margin-bottom: 50px;
}

.A {
  width: 20px;
  height: 20px;
  border: 1px solid black;
}

.A:first-of-type.B {
  background-color: orange;
}
<div class="container">
  <div class="A"></div>
  <!-- don't apply style -->
  <div class="A B"></div>
  <div class="A"></div>
  <div class="A B"></div>
</div>
<div class="container">
  <div class="A B"></div>
  <!--apply style -->
  <div class="A"></div>
  <div class="A"></div>
  <div class="A"></div>
</div>
Cédric
  • 2,239
  • 3
  • 10
  • 28