像素是一種錯覺。即使你認為自己正在以「像素完美」的精準度繪製圖形,你的螢幕也在欺騙你。並不存在一個由柏拉圖式完美正方形組成的格線。
請注意,1px 不一定等於一個實體裝置像素。在高清顯示器上,它可能涵蓋多個實體像素。同樣地,CSS 中的 1cm 通常不等於國際單位制中的一百分之一公尺。在大型電視螢幕上,它通常會比這個長度還要長。這些長度是感知上的:16px 在手機、筆電或電視螢幕上,於典型觀看距離下看起來大致相同。
這個部落格主要是以文字為主。我希望文字的寬度對一般人來說是易讀的。因此,我不是將主要寬度設定為螢幕的百分比,而是根據字元寬度使用 ch 單位來設定——ch 並不完全等同於字元,但對我來說已經足夠了:
在設定內距和外距時,情況也是如此。如果我想要元素周圍有間距,我希望這個間距與其中的文字成比例。
對於寬度來說,重複使用 ch 單位是合理的。我希望間距能與文字成比例。
但對於高度,也許用字元寬度來表示垂直距離並不合理?這時可以使用 ex 單位,它代表典型小寫字母的高度。
就像我想要從 HTML 中消除 CSS 類別的想法一樣,這種做法也可能走得太遠。我並沒有將所有 px 換成 ch,我只是在嘗試看看是否可行。
使用 px 或其他度量單位並沒有錯,也不是不道德或邪惡。使用 ch 和 ex 單位符合我個人的偏好。
根據我的經驗,相對的 CSS 度量單位通常比絕對的 px 更有用。這是一篇不錯的文章。
有人提醒我不要像他一樣,經常搞混自己,然後不明白為什麼 `padding: 0.75en` 沒有效果……
我喜歡 ch 單位,但之前有人分享過在搭配網頁字型時要注意的副作用:https://cloudfour.com/thinks/watch-out-for-layout-shifts-with-ch-units/
(如果你使用系統字型,這就不是問題!)
我發現 lh 單位(等於計算後的行高)對於設定內距和外距非常有用。搭配 ch 使用,lh 是我讓排版看起來「正確」的首選方法。