html - Change overlapped image visibility on radio button click -


i want change visibility options 2 overlayed images radio buttons. .productbutton appears default, .productbutton_lower visibility: hidden. radio button becomes checked, .productbutton_lower becomes visible while .productbutton becomes hidden.

html

<strong>bottle size</strong><br/> <label class="prodbutt">     <input type="radio" class="size" value="10" name="size" required="required" />     <img src="http://i.imgur.com/vtmveab.png" class="productbutton" />     <img src="http://i.imgur.com/k9jvwfr.png" class="productbutton_lower" /> </label> <label class="prodbutt">     <input type="radio" class="size" value="30" name="size" required="required" />     <img src="http://i.imgur.com/kksv0wu.png" class="productbutton" />     <img src="http://i.imgur.com/40zkkjd.png" class="productbutton_lower" /> </label> <label class="prodbutt">     <input type="radio" class="size" value="100" name="size" required="required" />     <img src="http://i.imgur.com/seeigxt.png" class="productbutton" />     <img src="http://i.imgur.com/jbkhyi2.png" class="productbutton_lower" /> </label> 

css

label.prodbutt {     position: relative; } img.productbutton {     height: 25px; } img.productbutton_lower {     height: 25px;     visibility: hidden;     position: absolute;     bottom: 0;     left: 0; } label.prodbutt > input[type="radio"] {     visibility: hidden;     position: absolute; } label.prodbutt > input[type="radio"]:checked + img.productbutton {     visibility: hidden; } label.prodbutt > input[type="radio"]:checked + img.productbutton_lower {     visibility: inline; } 

what wrong styling here, why won't .productbutton_lower become visible after radio button checked? additionally, forcing static visibility on .productbutton_lower gives odd positioning.

jsfiddle (as aside, how use so's inbuilt fiddle?)

two issues, (1) use general sibling selector ~ not +. (2) visibility:visible not inline.

label.prodbutt > input[type="radio"]:checked ~ img.productbutton {     visibility: hidden; } label.prodbutt > input[type="radio"]:checked ~ img.productbutton_lower {     visibility: visible; } 

https://jsfiddle.net/rsu264fc/2/

label.prodbutt {      position: relative;  }  img.productbutton {      height: 25px;  }  img.productbutton_lower {      height: 25px;      visibility: hidden;      position: absolute;      bottom: 0;      left: 0;  }  label.prodbutt > input[type="radio"] {      visibility: hidden;      position: absolute;  }  label.prodbutt > input[type="radio"]:checked ~ img.productbutton {      visibility: hidden;  }  label.prodbutt > input[type="radio"]:checked ~ img.productbutton_lower {      visibility: visible;  }
<strong>bottle size</strong>   <br/>  <label class="prodbutt">      <input type="radio" class="size" value="10" name="size" required="required" />      <img src="http://i.imgur.com/vtmveab.png" class="productbutton" />      <img src="http://i.imgur.com/k9jvwfr.png" class="productbutton_lower" />  </label>  <label class="prodbutt">      <input type="radio" class="size" value="30" name="size" required="required" />      <img src="http://i.imgur.com/kksv0wu.png" class="productbutton" />      <img src="http://i.imgur.com/40zkkjd.png" class="productbutton_lower" />  </label>  <label class="prodbutt">      <input type="radio" class="size" value="100" name="size" required="required" />      <img src="http://i.imgur.com/seeigxt.png" class="productbutton" />      <img src="http://i.imgur.com/jbkhyi2.png" class="productbutton_lower" />  </label>

explanations:

general sibling selectors ~ combinator separates 2 selectors , matches second element if preceded first, , both share common parent.

adjacent sibling selectors + select only specified element immediately follows former specified element.

lastly, visibility:inline not exist in css.


Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -