0

I just want to format the "visibility" element differently. It doesn't seem to work with nth-child. Can someone tell me why it doesn't work. Or reveal another solution.

many thanks

.owl-stage div.visibility:nth-child(1){
  background: blue;
}
.owl-stage div.visibility:nth-child(2){
  background: red;
}
<div class="owl-stage">
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="test">The paragraph.</div>
</div>
Hao Wu
  • 17,573
  • 6
  • 28
  • 60

3 Answers3

2

You need to specify n

.owl-stage div.visibility:nth-child(1n){
 background: blue;
}
.owl-stage div.visibility:nth-child(2n){
 background: red;
}    
jobayer
  • 156
  • 1
  • 5
1

nth-child only selects the child count, not the class. So technically the first .visibility is the 7th child. And there's no such thing called nth-class

But you can still achieve that by relative selector +:

/* nth-class(1) */
.owl-stage div:not(.visibility) + .visibility {
  background: blue;
}


/* nth-class(2) */
.owl-stage div:not(.visibility) + .visibility + .visibility {
  background: red;
}
<div class="owl-stage">
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="test">The paragraph.</div>
</div>
Hao Wu
  • 17,573
  • 6
  • 28
  • 60
0

nth-child() simply looks at the siblings of .owl-stage div. It cannot filter classes like visibility. For ideas on filtering by nth-class maybe see here.

In your case you could use 7th or 8th child as below:

.owl-stage div.visibility:nth-child(7) {
  background: blue;
}
.owl-stage div.visibility:nth-child(8) {
  background: red;
}
<div class="owl-stage">
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item visibility">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="owl-item">The paragraph.</div>
  <div class="test">The paragraph.</div>
</div>
Eddie Reeder
  • 805
  • 1
  • 7
  • 13