*問題:字體在屏幕上顯示的時候需要將字體柵格化為一個個像素點割粮,采用黑白像素點渲染,無法體現(xiàn)字體的細節(jié)之處媚污,會造成邊緣呈現(xiàn)鋸齒狀的不平滑穆刻。
*分析:字體渲染引擎的平滑方式:灰階渲染
和 亞像素渲染
。
(1 灰階渲染是通過控制字體輪廓上 像素點的亮度
杠步,達到字體原始形狀的方法氢伟;
(2 亞像素渲染則利用了 LCD 屏幕中每個像素是由 RGB 三個亞像素的顏色和亮度混合而成一個完整像素的顏色這一原理,將字體上的輪廓點由三個亞像素體現(xiàn)達到原始形狀的方法幽歼,與灰階渲染相比朵锣,分辨率在垂直方向上放大了三倍
,因此甸私,渲染效果更好诚些。但是,所消耗的內(nèi)存也更多
皇型。
因此在手機屏幕上诬烹,為了減少 CPU 的開銷,使用灰階渲染弃鸦。
在 macOS上绞吁,采用的是亞像素渲染這種方式。這就會導致白色唬格、亮色的字體家破,在深色背景下會顯得過粗
,嚴重情況下看上去會模糊购岗。 (但是如果是淺色背景下就沒有這個反差了)
*解決:控制瀏覽器渲染字體的方式
-webkit-font-smoothing: antialiased;
-webkit-font-smoothing: grayscale;