按钮到底该不该是手型光标:CSS 工作组争了十七年终于定案
来源:blog.kizu.dev — 2026-11-13
📋 概述
Roma(kizu)记录了 CSS 工作组三周前的一项决议:appearance: base 的表单控件采纳 cursor: pointer,涵盖 button、select、option、checkbox、radio、各类 input 按钮、input type=color、input type=image 以及 ::file-selector-button。这只是出现在 appearance: base-… 元素的用户代理样式里,没加 !important,任何人仍可覆盖。作者 2013 年就写过《Correct Cursor on Active Elements》,2017 年提了自己的第一个 CSSWG issue,如今终于落地。文中逐条反驳「操作系统不这么做」——他指出现代桌面应用几乎全都这么做——并主张按钮、链接、空白区域至少需要三种不同光标。
🔑 核心要点
- 决议覆盖的控件范围很广:button、select、option、checkbox、radio、各类 input 按钮以及 ::file-selector-button 都会拿到手型光标。
- 这是一条可覆盖的 UA 样式,没有 !important,不喜欢的人在自己的样式表里覆盖成 default 即可。
- 「操作系统不这么做」的论据站不住:作者列出 Cinny、Discord、Signal、Slack、Steam、VS Code,这些桌面应用都在可交互元素上用了手型光标。
- 他承认反对者有一个合理诉求:按钮和链接应该有不同的光标,普通链接和新标签页链接也应该不同——结论是「我们需要更多光标」。
- 作者最终简化成三个对象两类光标:空白、按钮、链接,他无法理解有人觉得按钮更接近空白而不是链接。
💡 金句
Default cursor does not communicate anything. It does one job well — point at a specific pixel. It could do more.
← 返回 Lobsters 首页
👍 0
👎 0