最近遇到一个网页兼容性问题,非常神奇,这个问题出现在Firefox(版本32)上,导致问题的原因也比较难找,记录一下。
## 出现的问题 :

  • 文本段落(P标签)宽度不正常(和IE,Chrome相比较),导致换行
  • 文本中的空白符(white-space)不显示

问题原因:

本来以为是css的问题,于是在样式表中加入了white-space,属性值尝试了normal,nowrap,但是都不管用。
在想会不会是扩展导致的,于是在Firefox上新建了一个干净的用户配置(命令行下打开,进入FF目录,运行Firefox -p),谁知道没问题了,果然是扩展导致的。
但是接下来的步骤就蛋疼了,分别把扩展们禁用,但是全部都禁用了,还是照旧,卸载扩展呢?一样!会不会是插件问题呢?也全部禁用,还是一样,怎么办呢?只好到用户配置文件夹里面删配置了,当删到prefs.js文件时,结果好了,这文件是啥?放狗搜了一下,说是类似注册表的东西,FF集中把用户配置写到这个文件里,打开文件看,好多,一行一行删,当删到gfx.font_renderinge时,没问题了。

又放狗搜了一下,这个值是 Anti-Aliasing Tuner扩展改变的,有人好奇这是个啥扩展?这东西可以改变FF的字体渲染方式,让开了硬件加速的字体不那么“糊”,还可以设置成类似MacType的渲染方式。

Anti-Aliasing Tuner
https://addons.mozilla.org/zh-CN/firefox/addon/anti-aliasing-tuner/

问题是都把这个扩展删了,被改变的值还留在配置文件里,写这个扩展的作者请给我“去死两次吧!!”,浪费这么多时间搞这个。

解决步骤:

  1. 在地址栏内输入about:config提示可能会失去质保,无视它,单击“我保证会小心”
  2. 搜索gfx.font_rendering.*
  3. 找到gfx.font_rendering.cleartype_params.rendering_mode,右键,重置