【发布时间】:2013-04-13 22:24:52
【问题描述】:
我确定您会注意到 CSS3 旋转后文本的恼人外观。文字看起来很脆,锯齿状,不对齐......
我找到了一些答案,其中包括 -webkit-font-smoothing,但这根本没有效果。
在那之后,我找到了自己的解决方案:只需应用一些 filter 属性!是的,这行得通!它适用于任何滤镜(不透明度、灰度、模糊)!
所以如果我们旋转一些文本,并应用(对于 Chrome)
-webkit-filter: blur(0px);
和(对于 FF)
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
结果要好得多。文字对齐很好,没有松脆和锯齿状的效果。但是......现在文字有点模糊。不是因为过滤器blur,与任何其他过滤器的结果相同。同样,-webkit-font-smoothing 没有效果。
Here is jsfiddle ,您可以看到这两段之间的区别。
(如果您申请color: red; on p,您甚至可以更好地看到差异。)
现在,我的问题是 - 是否有更好的方法可以在文本旋转后使用其他一些属性来解决此渲染问题?或者至少在使用滤镜后如何修复这种模糊效果?
提前致谢!
【问题讨论】:
-
你可以使用 transform: rotate(45deg) translate3d( 0, 0, 0);获得相同的结果。
标签: css rotation css-transforms