【问题标题】:How change the color of the radio button [duplicate]如何更改单选按钮的颜色[重复]
【发布时间】:2018-01-01 18:49:06
【问题描述】:

是否可以通过 CSS 更改单选按钮的背景颜色? 我在互联网上查看,但我只在 JS 中找到解决方案,我不一定了解它们。我试过了,但它不起作用:

input[type="radio"]:checked {
  background-color: red;
}
<div class="sound-signal">
  Signal sonore :
  <input type="radio" name="soundsignal" id="soundsignal" checked="checked">
  <label for="soundsignal">Oui</label>
  <input type="radio" name="soundsignal">
  <label for="soundsignal">Non</label>
</div>

【问题讨论】:

  • 这是一个重复的问题。在这里寻找答案:stackoverflow.com/a/4253939/4342197
  • 请重新打开答案。
  • @ehsan — 这是一个重复的问题,所以:不。如果你能给出更好的答案,那就在原来的问题上给出。

标签: html css


【解决方案1】:

只有使用 CSS 来设置单选按钮(顺便说一下复选框)的样式有两种方法:

  • 通过样式标签的伪选择器和隐藏单选按钮

    /* completely hiding radio button */
    input[type="radio"] {
      display: none;
    }
    
    /* simulate radiobutton appearance using pseudoselector */
    input[type="radio"] + label:before {
      content: "";
      /* create custom radiobutton appearance */
      display: inline-block;
      width: 15px;
      height: 15px;
      padding: 3px;
      margin-right: 5px;
      /* background-color only for content */
      background-clip: content-box;
      border: 1px solid #bbbbbb;
      background-color: #e7e6e7;
      border-radius: 50%;
    }
    
    /* appearance of checked radiobutton */
    input[type="radio"]:checked + label:before {
      background-color: red;
    }
    
    /* resetting default box-sizing */
    *,
    *:before,
    *:after {
      box-sizing: border-box;
    }
    
    /* optional styles for centering radiobuttons */
    .sound-signal label {
      display: inline-flex;
      align-items: center;
    }
    <div class="sound-signal">
      Signal sonore:
      <input type="radio" name="soundsignal" id="soundsignal1" checked="checked">
      <label for="soundsignal1">Oui</label>
      <input type="radio" name="soundsignal" id="soundsignal2">
      <label for="soundsignal2">Non</label>
    </div>
  • 通过使用 CSS appearance: none 隐藏标准外观并应用自定义外观。不幸的是,这种方式不适用于桌面版 IE(但适用于 Windows Phone 版 IE)。

    input[type="radio"] {
      /* remove standard background appearance */
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
      /* create custom radiobutton appearance */
      display: inline-block;
      width: 15px;
      height: 15px;
      padding: 3px;
      /* background-color only for content */
      background-clip: content-box;
      border: 1px solid #bbbbbb;
      background-color: #e7e6e7;
      border-radius: 50%;
    }
    
    /* appearance for checked radiobutton */
    input[type="radio"]:checked {
      background-color: red;
    }
    
    /* optional styles for centering radiobuttons */
    .sound-signal {
      display: flex;
      align-items: center;
    }
    <div class="sound-signal">
      Signal sonore :
      <input type="radio" name="soundsignal" id="soundsignal1" checked="checked">
      <label for="soundsignal1">Oui</label>
      <input type="radio" name="soundsignal" id="soundsignal2">
      <label for="soundsignal2">Non</label>
    </div>

【讨论】:

  • 选项 1- 就像魅力一样。干杯
  • @Ramya 很高兴为您提供帮助!
  • 快进到 2021 年,这仍然对我有帮助...... ty
猜你喜欢
  • 2018-01-24
  • 1970-01-01
  • 2011-05-14
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
相关资源
最近更新 更多