Reputation: 1675
So, in my code i have the following possibilities:
<div class="price-box">
<p class="was-old-price">$PRICE$</p>
<p class="special-price">$PRICE$</p>
</div>
or
<div class="price-box">
<p class="old-price">$PRICE$</p>
<p class="special-price">$PRICE$</p>
</div>
I want when .was-old-price
get printed insted of .old-price
, the .special-price
has display:none
properties. is this possible to achieve this using CSS?
Upvotes: 3
Views: 3960
Reputation: 128776
You can do that with the the Adjacent Sibling Combinator (+
) selector:
.was-old-price + .special-price {
display: none;
}
The E + F
selector selects the F
element immediately following the E
element. In this case, the .special-price
element immediately following the .was-old-price
element. Here's an example:
.was-old-price + .special-price {
display: none;
}
<h3>Box 1</h3>
<div class="price-box">
<p class="was-old-price">was-old-price</p>
<p class="special-price">special-price</p>
</div>
<h3>Box 2</h3>
<div class="price-box">
<p class="old-price">old-price</p>
<p class="special-price">special-price</p>
</div>
Upvotes: 8