【问题标题】:Detecting the change of the font smoothing setting in Javascript检测Javascript中字体平滑设置的变化
【发布时间】:2011-06-01 10:58:26
【问题描述】:

我有一个使用 @font-face 的页面,我正在使用 JavaScript 代码,根据是否启用字体平滑,有条件地设置此字体中的文本。检测是沿着these lines 进行的,但要更精细一些,以便区分 ClearType 和 Standard 平滑。

无论如何,平滑检查是在页面加载时完成的,我想了解是否有办法捕获页面加载后平滑首选项发生变化的事件。

谢谢

【问题讨论】:

  • 您想在页面加载后检测用户是否更改了首选项?
  • 你确定这有意义吗?我的意思是,大多数用户甚至从未见过字体平滑的设置。真的有必要为他们在您的网站上更改它的情况做准备吗?
  • @pekka - 我只是好奇这是否可行,而不是有任何实际意义。

标签: javascript dom fonts cleartype smoothing


【解决方案1】:

我看不出有一种方法可以在没有超时的情况下执行您每 x 秒显示一次的检查 - 从资源的角度来看,这当然是次优的。

我不认为有任何 JavaScript 事件可以挂钩。如果平滑方法发生变化,包含文本的元素的大小可能会发生变化,但也可能不会。

【讨论】:

  • "如果平滑方法发生变化,包含文本的元素的大小可能会发生变化,但也可能不会发生变化。" ——你知道还是这是一个猜测?如果是前者,我很乐意看到一个例子,因为我自己找不到,我做了很多实验。
  • @Alex 我在这里建立了一个原始测试:jsfiddle.net/xJbw5/3 并打开和关闭了 ClearType。文本中的差异很明显,但高度值没有改变,所以我很确定它毕竟不会影响元素的物理尺寸。
  • 是的,这也是我的观察。在早期的 ClearType 公告中,MS 展示了 CT 开启时文本更宽的示例,但他们得到了足够的批评(关于像素完美的页面布局被搞砸了),以使生产版本保持在与非 CT 渲染相同的宽度/高度.我希望通过探测找到的是特定字体中的符号组合,这些符号会导致宽度/高度发生变化。尝试了很多东西 - 非常小的字体大小(1-2px),非常大的字体,负字母间距等等 - 似乎没有任何东西会触发大小差异。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2010-10-29
  • 2013-02-17
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多