我正在尝试设置单选按钮的样式,我用背景图像替换圆圈,当用户点击它时,按钮所在的容器应该会出现内部框阴影。
为了简单起见,我设计了灰色的跨度,假设灰色是背景图像小提琴:http://jsfiddle.net/CF5qc/
HTML
<div class="contain">
<span>
<input type="radio" name="test" value="1">
<label></label>
</span>
<span>
<input type="radio" name="test" value="2">
<label></label>
</span>
<span>
<input type="radio" name="test" value="3">
<label></label>
</span>
</div>
CSS
.contain { width: 300px; margin: 10px auto; overflow:hidden;border: 1px solid #e5e5e5; }
span {
display:block; width:100px; height:100px; border-right: 1px solid #e5e5e5;
-webkit-box-sizing: border-box; -moz-box-sizing:border-box; box-sizing: border-box; float:left;
}
span:last-of-type { border:none; }
input { width:20px;height:20px;margin:40px; }
input[type=radio]{display:none;}
label {
width:100%;height:100%;display:block; background-color: #f8f8f8; cursor:pointer;
}
input[type=radio]:checked + label {
-webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
-moz-box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}
答案 0 :(得分:1)
您的标签与任何元素无关。要使此技巧有效,您需要为单选按钮指定一个ID,并使用标签上的for
属性进行配对。
<input type="radio" name="test" value="1" id="rb1" checked />
<label for="rb1"></label>