0

I'd like to select the last of "b" div with "last-child" or "nth-last-child(1)"
However it's not working properly. The child of div will be updating dynamicaly
so I cannot use nth-of-child(9).

<div class="parent">
    <div class="a">
    <div class="a">
    <div class="a">
    <div class="a">
    <div class="b">
    <div class="b">
    <div class="b">
    <div class="b">
    <div class="b"> <-- this point
    <div class="c">
    <div class="c">
    <div class="c">
</div>

If I select the last of "b" element,
How can I apply my css tags?

.parent > b:last-child{color:#f00;} // It's not working .parent > b:nth-last-child(1){color:#f00;} // It's not working

Richard
  • 351
  • 4
  • 17

1 Answers1

0

Such a selector doesn't exist. You need to know the exact position with regard to :nth-child or :nth-last-child to select it with CSS only.

You can resort to Javascript, though.

const divs = document.querySelectorAll('.parent>.b');

divs[divs.length-1].classList.add('red');
.parent>div::before { content: attr(class); }

.red { color: #f00; }
<div class="parent">
    <div class="a"></div>
    <div class="a"></div>
    <div class="a"></div>
    <div class="a"></div>
    <div class="b"></div>
    <div class="b"></div>
    <div class="b"></div>
    <div class="b"></div>
    <div class="b"></div> <!-- this point -->
    <div class="c"></div>
    <div class="c"></div>
    <div class="c"></div>
</div>
connexo
  • 53,704
  • 14
  • 91
  • 128