我有这个演示http://codepen.io/anon/pen/qZjOWj我想要的是,当用户在第一个单选按钮上时,它需要为蓝色,而当他在第二个单选按钮上时,则需要为绿色。有什么建议吗?



div {
  margin: 0 0 0.75em 0;
}

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

input[type="radio"] + label {
  color: #292321;
  font-family: Arial, sans-serif;
  font-size: 14px;
}

input[type="radio"] + label span {
  display: inline-block;
  width: 19px;
  height: 19px;
  margin: -1px 4px 0 0;
  vertical-align: middle;
  cursor: pointer;
  -moz-border-radius: 50%;
  border-radius: 50%;
}

input[type="radio"] + label span {
  background-color: white;
  border: 1px solid black;
}

input[type="radio"]:checked + label span {
  background-color: blue;
  border: 1px solid blue;
}

input[type="radio"] + label span,
input[type="radio"]:checked + label span {
  -webkit-transition: background-color 0.4s linear;
  -o-transition: background-color 0.4s linear;
  -moz-transition: background-color 0.4s linear;
  transition: background-color 0.4s linear;
}

<div>
  <input type="radio" checked="checked" id="radio01" name="radio" />
  <label for="radio01"><span></span>Radio Button 1</label>
</div>

<div>
 <input type="radio" id="radio02" name="radio" />
 <label for="radio02"><span></span>Radio Button 2</label>
</div>

最佳答案

现在,在CSS中,您只需要检查是否选中了任何单选按钮,然后将其涂成蓝色即可。您需要创建一个选项,以便可以在单选按钮之间进行区分(例如,为它们提供不同的颜色)。

类对此非常有用,它们几乎是针对此功能的。
调整您的HTML,使其看起来像这样:

<div>
  <input type="radio" checked="checked" class="blue" id="radio01" name="radio" />
  <label for="radio01"><span></span>Radio Button 1</label>
</div>

<div>
 <input type="radio" id="radio02" class="green" name="radio" />
 <label for="radio02"><span></span>Radio Button 2</label>
</div>


注意,单选按钮的类属性现在有何不同(因此,您现在可以分别访问它们了。)

像这样修改您的CSS:

input[type="radio"].green:checked + label span{
     background-color:green;
     border:1px solid blue;
}

input[type="radio"].blue:checked + label span{
     background-color:blue;
     border:1px solid blue;
}


现在,您的CSS将绘制其类别分别设置为蓝色,蓝色和分类为绿色,绿色的单选按钮。

07-25 22:02
查看更多