向 px 告别,让 ch 单位统治 CSS
Death to px, long live ch
像素其实是个谎言,屏幕上的 1px 并不等于物理像素,甚至在不同设备上呈现效果各异。为了让文本在各类屏幕上保持最佳阅读体验,我决定放弃传统的 px 单位,转而使用基于字符宽度的 ch 单位来设定内容宽度。对于垂直间距,则可以考虑使用 ex 单位。这种相对单位能确保布局与文本内容成比例,而非死板地依赖屏幕分辨率。虽然不必将所有 px 都替换掉,但尝试这种基于人眼感知的测量方式,或许能让网页设计更加灵活自然。
像素是个谎言,即使你认为自己在绘制像素级完美的内容,你的显示器也在欺骗你。
HN 评论区
75- somat
我想知道是谁决定要搞坏 px 的,我们最后需要的就是再增加一个荒诞的物理单位,CSS 里已经全是这些东西了。但就是那种“啧啧啧,大家都在用 px,而这些新的高 DPI 显示屏把东西渲染得特别小,这可不行”的心态,结果现在 px 作为一个有用的单位算是被毁了。
有没有办法使用真正的像素?我 admittedly 快速的搜索表明没有。至少在规范里没什么能让我一眼看出来的。
- microflash
我发现 ch 和 ex 单位深受拉丁字符的影响。它们在非拉丁字符上只会给出奇怪的结果,导致一堆魔法数字。但这个概念本身真的很扎实:如果你希望间距相对于文字,那就用它们。
- npn
我也在多年前做过一些关于 ch 的实验。我发现 60ch 是块级文本易于阅读的理想宽度。可惜要做出宽度仅为 60ch 的网站相当困难。
- jeberle
我还在等待操作系统采用真正的物理单位。你知道的,PostScript 打印机从 80 年代起就用的小技巧(分辨率不低于 300dpi)。我意识到野外确实存在大屏幕投影仪,但这是可以解决的问题。位图图标也是个问题,但同样可以解决。
- squidlib
我想听听作者对 vw 和 vh 单位的看法。多年来,当我想要某种特定感觉时,我倾向于使用这些单位,效果相对不错。鉴于 ch 的论证围绕的是对一致布局的渴望,我很惊讶文中没有提到它们。