我有一个div的单选按钮:
<div class="radio-line">
<label>
<img src="img/black.jpeg" />
<input type="radio" name="choice1" value="1"/>
</label>
<label>
<img src="img/blue.jpg" />
<input type="radio" name="choice1" value="2"/>
</label>
</div>
这是我的CSS:
img {
width: 20vw;
height: 20vw;
padding: 2vw;
}
input[type=radio] {
display: none;
}
img:hover {
opacity: 0.4;
cursor: pointer;
}
img:active {
opacity:0.4;
cursor: pointer;
}
input[type=radio]:checked + img {
border: 20px solid rgb(228, 207, 94);
}
当我将鼠标悬停在一个正方形上时,正方形的不透明度会改变,但是当我点击正方形时,什么也没有发生(当它应该被选中时,一个边框应该围绕它)。
img {
width: 20vw;
height: 20vw;
padding: 2vw;
}
input[type=radio] {
display: none;
}
img:hover {
opacity:0.6;
cursor: pointer;
}
img:active {
opacity:0.4;
cursor: pointer;
}
input[type=radio]:checked + img {
border: 20px solid rgb(228, 207, 94);
}
<label>
<img src="img/black.jpeg" />
<input type="radio" name="choice-1" value="1"/>
</label>
<label>
<img src="img/blue.jpg" />
<input type="radio" name="choice-1" value="1"/>
</label>
3条答案
按热度按时间zz2j4svz1#
您可以使用:checked伪类和同级选择器来实现该效果。
因此,第一件事是进入一个结构,其中输入是标签的兄弟而不是后代,并包括一个链接它们的“for”属性
sulc1iza2#
您可以使用jQuery在图像上设置onClick函数。为图像分配自定义类,例如:radioImage和jQuery中:
qlvxas9a3#
您应该将
label
的for
属性设置为您想要的input
的名称。在这种情况下,它可能看起来像这样: