(Firefox 错误) 转换时字体马虎

Posted

技术标签:

【中文标题】(Firefox 错误) 转换时字体马虎【英文标题】:(Firefox bug) Font is sloppy when transformed 【发布时间】:2013-11-08 18:31:53 【问题描述】:

这个问题最初与 FontAwesome 相关,但它是一个一般的 Firefox 问题。

所以我使用了 fa-spin 类来旋转图标,here 你可以找到一些例子。

这是旋转的 css 文件:

// Spinning Icons
// --------------------------

.#$fa-css-prefix-spin 
  -webkit-animation: spin 2s infinite linear;
  -moz-animation: spin 2s infinite linear;
  -moz-animation: spin 2s infinite linear;
  -o-animation: spin 2s infinite linear;
  animation: spin 2s infinite linear;


@-moz-keyframes spin 
  0%  -moz-transform: rotate(0deg); 
  100%  -moz-transform: rotate(359deg); 

@-webkit-keyframes spin 
  0%  -webkit-transform: rotate(0deg); 
  100%  -webkit-transform: rotate(359deg); 

@-o-keyframes spin 
  0%  -o-transform: rotate(0deg); 
  100%  -o-transform: rotate(359deg); 

@-ms-keyframes spin 
  0%  -ms-transform: rotate(0deg); 
  100%  -ms-transform: rotate(359deg); 

@keyframes spin 
  0%  transform: rotate(0deg); 
  100%  transform: rotate(359deg); 

现在在 chrome 和 IE10 中一切正常,但在 firefox 中却不行: jsFiddle。 当您第一次运行它时,它看起来不错,但尝试与站点交互(例如:在 jsFiddle 中再次滚动或运行脚本)。动画变得很紧张。 我不知道是什么导致了这种奇怪的行为,希望任何人都可以帮助我。

编辑

此问题出现在 Windows 7 32 位和 25.0 版本的 Firefox(无附加组件)上。 但是,它在我的家用 PC 上运行,它也有 Windows 7 32 位 25.0 Firefox。 预览它在我的屏幕上的外观: 请注意,它在最初的几秒钟内有效,但之后会变得紧张(这种口吃是因为我的 .gif 文件不好)。


更多信息请查看我的回答

【问题讨论】:

关键帧以 359 度而不是 360 度结束的任何原因? 这是一个长镜头,但您可以尝试像这样编写关键帧:@-webkit-keyframes spin from code goes here to code goes here @Josh 这是来自 FontAwesome 的默认代码。 360和359我没看出有太大区别,所以没必要修改。 'from - to' 的行为与 '0% - 100%' 相同,尝试过 :) 嗯,我只是在抛出一些激进的想法哈。我遇到的问题是我在 IE、Firefox 或 Chrome 中看不到任何故障或跳跃动画。您使用的是什么操作系统? Windows 7 32 位。即使在jsFiddle中滚动(例如:在css框中),您也看不到任何问题? 【参考方案1】:

在你想添加这个“hack”之前,你应该先尝试更新你的驱动程序

我注意到的是 IE 和 Chrome 实际上使文本变得模糊,而 FF 不会。我想使用模糊滤镜,但没有奏效。此外,字体宽度并没有保持不变,所以我需要一些东西来提醒客户他的宽度或强制宽度始终是静态的。

我遇到了 SVG 过滤器 XML url,它是 Firefox 10+ 和 Firefox on android 专用的。我尝试将此应用于我的元素,但我的问题完全消失了! 我确实使用了<feColorMatrix type=saturate values=1/>,所以饱和滤镜并没有带走颜色。

filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'saturate\' values=\'1\'/></filter></svg>#grayscale");

当将此添加到 FontAwesome 使用的 .fa-spin 类时,它将适用于每个旋转元素。

jsFiddle

【讨论】:

以上是关于(Firefox 错误) 转换时字体马虎的主要内容,如果未能解决你的问题,请参考以下文章

Firefox 上的可下载字体:URI 错误或不允许跨站点访问

Heroku + CDN Cloudfront + 字体 - Firefox 错误

为啥 Firefox 中的网络字体不能在不同的域上工作?

输入占位符在 Firefox 中未垂直对齐

CSS3可以转换字体大小吗?

为啥在 Chrome 中转换字体大小如此不稳定?