jquery - 如何制作像输入类型单选按钮一样工作的 div html 标签?

标签 jquery css

我正在尝试制作一个类似于单选按钮的 div 按钮。

它目前像复选框一样工作。如何让它像输入(类型单选)标签一样工作?

这是类似于复选框的代码

    .gender {
        display: inline-block;
        line-height: 32px;
        margin: 4px;
        padding-left: 32px;
        background: left no-repeat url('https://icons-for-free.com/iconfiles/png/512/radio+button+unchecked+24px-131987943262195581.png');
        background-size: 24px;
        cursor: pointer;
    }

    .gender.checked {
        background-image: url("https://cdn2.iconfinder.com/data/icons/interface-vol-3-1/16/radio-button-on-checked--round-circle-512.png");
    }
<div style="text-align: left">
    <div class="gender checked" onclick="this.classList.toggle('checked')">
        Unspecified
    </div>
    <br>
    <div class="gender" onclick="this.classList.toggle('checked')">
        Male
    </div>
    <br>
    <div class="gender" onclick="this.classList.toggle('checked')">
        Female
    </div>
</div>

我试图让它像一个单选按钮一样

最佳答案

如果您愿意更改一些 html,那么您可以试试这个。

<input type="radio" name="gender" id="unspecified" />
<label for="unspecified" class="gender">
    Unspecified
</label>

然后我们可以像这样设置要检查的“假”单选:

input[type="radio"]:checked+.gender {
  background-image: url("https://cdn2.iconfinder.com/data/icons/interface-vol-3-1/16/radio-button-on-checked--round-circle-512.png");
}

演示

.gender {
  display: inline-block;
  line-height: 32px;
  margin: 4px;
  padding-left: 32px;
  background: left no-repeat url('https://icons-for-free.com/iconfiles/png/512/radio+button+unchecked+24px-131987943262195581.png');
  background-size: 24px;
  cursor: pointer;
}

.gender.checked {
  background-image: url("https://cdn2.iconfinder.com/data/icons/interface-vol-3-1/16/radio-button-on-checked--round-circle-512.png");
}

input[type="radio"] {
  display: none;
}

input[type="radio"]:checked+.gender {
  background-image: url("https://cdn2.iconfinder.com/data/icons/interface-vol-3-1/16/radio-button-on-checked--round-circle-512.png");
}
<div style="text-align: left">
  <input type="radio" name="gender" id="unspecified" />
  <label for="unspecified" class="gender">
      Unspecified
  </label>
  <br>
  <input type="radio" name="gender" id="Male" />
  <label for="Male" class="gender">
      Male
  </label>
  <br>
  <input type="radio" name="gender" id="Female" />
  <label for="Female" class="gender">
      Female
  </label>
</div>

关于jquery - 如何制作像输入类型单选按钮一样工作的 div html 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58231098/

相关文章:

php - 谷歌地图过滤器

jQuery:选择除此之外的所有链接

css - 一半页面 + CSS 对齐

html-pdf 文本对齐 : justify not working?

css - 条件继承字体、大小和颜色

php - woocommerce 自定义产品页面上的“添加到购物车”按钮和“立即购买”按钮

javascript - 捕获刷新并将页面更改为index.html

javascript - Firefox 中的 Accordion 盒故障

android - 背景图片右下角对齐错误 - Android 上的 Chrome

Php/Bootstrap 通过本地主机执行,而不是从 IDE (PhpStorm)