0

I'm working with a POS system that generates a website. Large parts of the code are proprietary and thus I can't edit a lot of things.

I have an outputted category listing that floats some images as categories. I want to hide the first 3 listed on the main page. I tried targeting the containing div with div:nth-child(1), which worked, but each sub-page it also hides them as well.

Unfortunately ALL non-main pages have only ONE class added to the body and main divs so I can't do a per-category ID or style, or per-page.

What I do have is an image tag that will be the same on each page. So I have tried the following:

img[src="theimage.png"] {
display: none; 
}

This also works great, BUT it only hides the image. Is there any way I can target the surrounding divs using that code or a variation of that code? For reference here is a basic structure:

<div class="cCategoryDivContainer col-xs-12 col-sm-6 col-md-6 col-lg-4">
     <div class="cCategoryDiv">
         <div class="cItemTitleDiv">
             <p class="cCategoryTitle">Category Title</p>
         </div>
         <div class="cItemImageDiv">
             <span class="cItemImageHelper"></span>
             <a href="#"><img class="cItemImage" src="theimage.png"></a>
         </div>
     </div>
 </div>

Essentially I want to target the div with class cCategoryDivContainer IF the src of the inside image is set to theimage.png.

Is this possible?

RodeoRamsey
  • 498
  • 2
  • 8
  • 20

1 Answers1

0

Actually you can in modern browsers. See support: https://caniuse.com/?search=has

.cCategoryDiv:has(img[src="theimage.png"]) {
  display: none;
}
<div class="cCategoryDivContainer col-xs-12 col-sm-6 col-md-6 col-lg-4">
     <div class="cCategoryDiv">
         <div class="cItemTitleDiv">
             <p class="cCategoryTitle">Category Title</p>
         </div>
         <div class="cItemImageDiv">
             <span class="cItemImageHelper"></span>
             <a href="#"><img class="cItemImage" src="theimage.png"></a>
         </div>
     </div>
     <div class="cCategoryDiv">
         <div class="cItemTitleDiv">
             <p class="cCategoryTitle">Category Title</p>
         </div>
         <div class="cItemImageDiv">
             <span class="cItemImageHelper"></span>
             <a href="#"><img class="cItemImage" src="anotherimage.png"></a>
         </div>
     </div>
 </div>
MaZoli
  • 1,388
  • 1
  • 11
  • 17