我希望一组单选按钮看起来像一组切换按钮(但仍然像单选按钮一样工作)。它们不必看起来完全像切换按钮。
我怎样才能只使用 CSS 和 HTML 来做到这一点?
编辑:当检查/未选中按钮时,我将满足使小圆圈消失并更改样式。
原文由 Pomber 发布,翻译遵循 CC BY-SA 4.0 许可协议
我希望一组单选按钮看起来像一组切换按钮(但仍然像单选按钮一样工作)。它们不必看起来完全像切换按钮。
我怎样才能只使用 CSS 和 HTML 来做到这一点?
编辑:当检查/未选中按钮时,我将满足使小圆圈消失并更改样式。
原文由 Pomber 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是我上面发布的那个不错的 CSS 解决方案 JS Fiddle 示例的版本。
HTML
<div id="donate">
<label class="blue"><input type="radio" name="toggle"><span>$20</span></label>
<label class="green"><input type="radio" name="toggle"><span>$50</span></label>
<label class="yellow"><input type="radio" name="toggle"><span>$100</span></label>
<label class="pink"><input type="radio" name="toggle"><span>$500</span></label>
<label class="purple"><input type="radio" name="toggle"><span>$1000</span></label>
</div>
CSS
body {
font-family:sans-serif;
}
#donate {
margin:4px;
float:left;
}
#donate label {
float:left;
width:170px;
margin:4px;
background-color:#EFEFEF;
border-radius:4px;
border:1px solid #D0D0D0;
overflow:auto;
}
#donate label span {
text-align:center;
font-size: 32px;
padding:13px 0px;
display:block;
}
#donate label input {
position:absolute;
top:-20px;
}
#donate input:checked + span {
background-color:#404040;
color:#F7F7F7;
}
#donate .yellow {
background-color:#FFCC00;
color:#333;
}
#donate .blue {
background-color:#00BFFF;
color:#333;
}
#donate .pink {
background-color:#FF99FF;
color:#333;
}
#donate .green {
background-color:#A3D900;
color:#333;
}
#donate .purple {
background-color:#B399FF;
color:#333;
}
带有彩色按钮的样式 :)
原文由 Simon Darby 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答919 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
2 回答929 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答902 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
根据您打算支持的浏览器,除了隐藏单选按钮外,您还可以使用
:checked
伪类 选择器。使用这个 HTML:
您可以使用类似以下 CSS 的内容:
例如,(为了保持自定义 CSS 简短)如果您使用的是 Bootstrap ,您可以将
class="btn"
添加到您的<label>
元素并适当地设置它们的样式以创建如下所示的切换:…只需要以下额外的 CSS:
我在 单选按钮切换 jsFiddle 演示 中包含了这个以及额外的回退样式。请注意,
:checked
仅在 IE 9 中受支持,因此此方法仅限于较新的浏览器。但是,如果您需要支持 IE 8 并愿意回退到 JavaScript*,您可以破解伪支持
:checked
没有太多困难(尽管您可以直接在那个点的标签)。使用一些快速而肮脏的 jQuery 代码作为 解决方法的示例:
然后,您可以对 CSS 进行一些更改以完成操作:
*如果您使用的是 Modernizr,则可以使用
:selector
测试 来帮助确定您是否需要回退。我在示例代码中将我的测试称为“checkedselector”,随后仅在测试失败时才设置 jQuery 事件处理程序。