首页 专题 H5案例 前端导航 UI框架

transform与字体模糊的问题

作者:TG 日期: 2017-10-23 字数: 2562 阅读: 8811
在开发FreeNG的scroll组件时,遇到了一个奇怪的问题,那就是当transformtranslate(0, -20.222px)(为小数)时,字体会变得模糊,当时的解决方案是将参数值改为整数,问题就解决了。

趁着有时间,搞了一个例子,本来以为很容易重现问题,可是直接设置transform: translate(0, -20.222px),发现问题无法重现。

实例:


仔细对比了一下两者的代码,发现唯一的不同之处在于scroll容器中的DOM(Angular组件嵌套)很多,但是往例子中的div塞了n多个DOM,发现字体还是依旧清晰,只能求助万能的Google,发现有一个说法,就是渲染复杂的内容时才会出现字体模糊,所以将例子修改了一下,在div中使用Charts图表,问题果然出现了。

实例:


问题出现的情况
1. 当translate()/scale()/matrix()使用小数,要渲染的内容很复杂时
2. 当渲染的内容很复杂,使用rotate()

注:这里还有一个容易忽略的情况,就是当你使用百分比时,而计算出来的值是小数时,也会出现这种情况,其实也就是第一种情况:使用小数。

解决方案
1. 将小数转换为整数

第二种情况还未找到解决方案

如果你发现更多情况或有更好的解决方法,欢迎在下方的评论区留言告知!

目录