2017-08-23 12 views
1

関連するボタンがチェックされているときに、グループ内の各ラジオボタンの隣にある画像の背景色を変更しようとしています。私は、次のHTMLとCSSを使用:チェックされたラジオボタンの隣にある画像のスタイルを変更する

.option-choice:checked img.img-thumbnail { 
 
    background-color: #004990 !important; 
 
    border-color: red; 
 
}
<div class="radio"> 
 
    <label> 
 
     <input class="option-choice" name="option[227]" value="18" type="radio"> 
 
     <img src="imageurl.jpg" alt="20mm " class="img-thumbnail">20mm 
 
    </label> 
 
</div>

をしかし、CSSが動作しない、とイメージは変わりません。私のCSSがここで正しくない可能性がありますか、それともできないのですか?

+0

CSSのセレクタとの間のスペースは、* *子孫を探します。例えば、 '.first .second'は、' .first'要素の*子孫*である '.second'要素を探します。一般的な兄弟の場合は '〜'を使います。あなたのケースでは、2つの兄弟が*隣接する兄弟であるということですが、 '+': '.option-choice:checked + img.img-thumbnail' – Santi

答えて

6

この..

.option-choice:checked img.img-thumbnail { 
    background-color: #004990 !important; 
    border-color: red; 
} 

は、画像は、それがないinput子孫であることを前提としてい。

使用隣接兄弟セレクタ+

.option-choice:checked + img.img-thumbnail { 
    background-color: #004990 !important; 
    border-color: red; 
} 
+1

私はそれがイメージが子孫。 – jollarvia

2

あなたセレクタ.option-choice:checked + img.img-thumbnailなければならない:

.option-choice:checked + img.img-thumbnail { 
 
    background-color: #004990 !important; 
 
    border-color: red; 
 
}
<div class="radio"> 
 
    <label> 
 
    <input class="option-choice" name="option[227]" value="18" type="radio"> 
 
    <img src="imageurl.jpg" alt="20mm " class="img-thumbnail">20mm 
 
    </label> 
 
</div>

関連する問題