我觉得所有“自定义设计的单选按钮和复选框”中有一半做了两件事
- 使它们更大
- 对它们进行着色
我一直认为 SurveyMonkey 有着大块的单选按钮和复选框。事实上,只是快速查看他们的界面,即使是在内部,应用程序也到处使用这些元素

<label>
元素上使用伪元素。我认为值得注意的是,如果这仅仅是你想要做的,你可能可以用零 CSS 技巧来做到。只需...使它们更大并对它们进行着色。
就像...
input[type="radio"],
input[type="checkbox"] {
width: 3em;
height: 3rem;
accent-color: green;
}
这将使这些元素变得更粗壮并对它们进行很好的着色!


除了(必备的悲伤长号声)在 Safari 中

我们几乎可以用一些非常简单的 CSS 来完成自定义复选框和单选按钮的主要用例。但还没有成功,也就是说,除非你能让自己不去关心 Safari 的 UI(毕竟,它仍然是完全可用的)。
如果你真的需要放弃并选择完全自定义的设计,Stephanie Eckles 可以帮助你
相关新闻,我一直认为“切换”UI 控件是一组 2 个经过逐步增强的单选按钮,但事实证明<button>
才是正确的选择,正如Michelle Barker 在这里所述。可惜没有用于滑块切换的原生 UI。
对我来说,切换就是复选框。开 = 已选中。关 = 未选中。这是我看到大多数人构建它们的方式。从未见过有人用单选按钮或按钮来做这件事
我的论点是,使用单选按钮,你可以在两侧拥有合适的/不同的标签。
Chris 说得对。想想这样的设置
复选框在这里不合适。你将打开或关闭“主题”,而不是在两种不同的状态(深色和浅色)之间切换。
“除非你能让自己不去关心 Safari”
做到了。
我同意。从语义上讲,开/关切换是一个复选框,从辅助功能的角度来看更有意义。使用单选按钮不行,因为它不允许用户关闭它(不使用 JavaScript 的奇怪技巧),并且使用只有 2 个不同值的滑块来复制切换,对于使用屏幕阅读器等工具的人来说,它的呈现方式不同。
我仍然是 CSS 新手,但与使用
appearance:none
(以及供应商前缀版本)并根据需要直接设置复选框/单选按钮样式相比,这些方法有什么好处呢?好处是这种方法要简单得多——你只需使用 3 个属性就能控制单选按钮/复选框的外观。如果你使用 appearance:none,你需要从头开始“绘制”复选框/单选按钮,包括在选中时制作勾号形状(例如,使用图像)等等。
试试 'transform: scale(2);'
这在 Safari 中有效,但 UI 元素变得非常模糊
CSS
accent-color
在 Safari 技术预览版 135 中默认支持并启用,因此它将在未来的 Safari 版本中发布。好消息是
accent-color
在几天前被添加到 Safari TP 中,因此很快就会与我们见面。https://webkit.org/blog/12040/release-notes-for-safari-technology-preview-135/
为什么将它们的宽度设置为
3em
,但高度设置为3rem
?是打字错误,还是我不知情的技巧?生活只需要一点点混乱。
(是打字错误)
谢谢——很高兴终于有了一种方法可以对烦人的表单元素进行足够的样式设置来取悦设计师,而不让前端开发人员感到恶心