应用转换后字体模糊
Blurry font after applying transform
我试图通过将 rotateY
应用于包含文本和图像的 div 来实现类似于 door/folder 打开的动画。应用时,文本元素变得模糊:
blurry_chrome
应用于 div 的所有内容是:
.folder:hover {
transform: translateZ(0) scale(1.12);
}
.folder:hover .front-cover {
transform: perspective(1000px) rotateY(-20.44deg);
}
即使其中一个或另一个被剥离,问题仍然存在。仅应用 scale
或 rotateY
时文本仍然模糊。
在 Firefox 上,这个问题似乎实际上要严重得多:
blurry_firefox
我尝试了很多技巧,例如 translateZ(0)
、blur(0)
和 font-smoothing
,但没有任何改变。
如果我想要这种效果,没有办法解决这个问题吗?
代码笔:https://codepen.io/mello-code/pen/XWpzxWd
编辑:
有些'solutions'我已经试过了:
- -webkit-字体平滑:亚像素抗锯齿;
- 过滤器:模糊(0);
- 变换原点:51% 51%;
- 使 div 大小、元素、填充和边距均匀
- 背面可见性:隐藏;
- perspective(1px)(悬停时已经应用了透视)
- 缩放而不是缩放
None 其中似乎有帮助。有什么想法吗?
有:
-webkit-font-smoothing: subpixel-antialiased
这应该会给你最清晰的结果,但它不是标准化的。
在此处查看有关字体平滑的更多信息:
https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth
这个答案可能也有帮助:
Blurry text after using CSS transform: scale(); in Chrome
scale
是这里最大的罪魁祸首。放大超过 1 会导致模糊,因此我没有在悬停时放大,而是让元素在悬停时缩小并放大到 1。
此外,从转换中删除 perspective
产生清晰的文本和图像。
我试图通过将 rotateY
应用于包含文本和图像的 div 来实现类似于 door/folder 打开的动画。应用时,文本元素变得模糊:
blurry_chrome
应用于 div 的所有内容是:
.folder:hover {
transform: translateZ(0) scale(1.12);
}
.folder:hover .front-cover {
transform: perspective(1000px) rotateY(-20.44deg);
}
即使其中一个或另一个被剥离,问题仍然存在。仅应用 scale
或 rotateY
时文本仍然模糊。
在 Firefox 上,这个问题似乎实际上要严重得多:
blurry_firefox
我尝试了很多技巧,例如 translateZ(0)
、blur(0)
和 font-smoothing
,但没有任何改变。
如果我想要这种效果,没有办法解决这个问题吗?
代码笔:https://codepen.io/mello-code/pen/XWpzxWd
编辑: 有些'solutions'我已经试过了:
- -webkit-字体平滑:亚像素抗锯齿;
- 过滤器:模糊(0);
- 变换原点:51% 51%;
- 使 div 大小、元素、填充和边距均匀
- 背面可见性:隐藏;
- perspective(1px)(悬停时已经应用了透视)
- 缩放而不是缩放
None 其中似乎有帮助。有什么想法吗?
有:
-webkit-font-smoothing: subpixel-antialiased
这应该会给你最清晰的结果,但它不是标准化的。
在此处查看有关字体平滑的更多信息:
https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth
这个答案可能也有帮助:
Blurry text after using CSS transform: scale(); in Chrome
scale
是这里最大的罪魁祸首。放大超过 1 会导致模糊,因此我没有在悬停时放大,而是让元素在悬停时缩小并放大到 1。
此外,从转换中删除 perspective
产生清晰的文本和图像。