html - 如何使用图像而不是单选按钮?

标签 html css radio-button

我有一个单选按钮的 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);
}

当我将鼠标悬停在一个正方形上时,正方形的不透明度会发生变化,但是当我点击该正方形时没有任何反应(当它应该被“选中”时,它周围应该有一个边框)。我一直在尝试使用不同的 div 和标签,但没有任何效果。

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>

最佳答案

您可以使用 :checked 伪类和兄弟选择器来实现该效果。

所以首先要做的是进入一个结构,其中输入是标签的兄弟而不是后代,并包含一个链接它们的“for”属性

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 + label > img {
  border: 20px solid rgb(228, 207, 94);
}
<input type="radio" name="choice" id="choose-1" value="1"/>
<label for="choose-1">
  <img src="https://placehold.it/200/200/" />
</label>

<input type="radio" name="choice" id="choose-2" value="2"/>
<label for="choose-2">
  <img src="https://placehold.it/200/200/" />
</label>

关于html - 如何使用图像而不是单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49703517/

相关文章:

javascript - Angular2 - RadioButtonState 没有按预期工作

Cakephp 3.0 表单元素单选按钮选中问题

javascript - 屏幕上的完整横幅宽度

javascript - 使整个 div 可点击

html - CSS Calc 视口(viewport)单位解决方法?

css - 尝试使用 Animate.css 脉冲但它不起作用

c# - 如何绑定(bind)到 WPF 中动态创建的单选按钮?

php - HTML 按钮未加载定义的参数

html - CSS 评级星级问题与箭头键

html - 使用 html5 文档类型时,如何在 IE 中将元素居中?