Search code examples
csssasscss-selectorstailwind-css

not able to target element


I have HTML Like this

<element1 class="class__1">
   <element2 removePadding></element2>
   <element3 class="class-3"></element3>
</element>

I want to change the margin-bottom of class-3 only when element2 has removePadding attribute, I tried like this

element1 element2[removePadding] element1 element3.class-3 {
    margin-top: 20px;
}

but this didn't work.

I want to target that class-3 only when element2 has removePadding attribute


Solution

  • element1 element2[removePadding] element1 - The last element1 shouldn't be there, CSS selectors only can go down, not up. Furthermore element3 is not child of element2 but is a sibling so you could use the + (next-sibling) selector

    div div[data-removePadding] + div.class-3 {
        margin-top: 20px;
        background: red;
    }
    
    div {
      border: 1px solid #020202;
      padding: 5px;
      box-sizing: border-box;
    }
    <div class="class__1">
       <div data-removePadding=""></div>
       <div class="class-3"></div>
    </div>