html - Canvas 上的文字在 IE 中看起来很垃圾...为什么?

标签 html canvas

我最近稍微扩展了可爱的 jquery“flot”图表插件......目标是直接在图表上绘制通常在图例中的内容。

它看起来只是有点垃圾,因为 IE 似乎渲染字体很弱。

看这里,左边是IE,右边是Firefox:

issue http://i56.tinypic.com/34oq4ci.png

顺便说一句...绘制所用文本的函数是 fillText()

我怎样才能使 IE 成形?

谢谢!

最佳答案

可悲的是,截至目前,Canvas 中存在所有浏览器之间的字体差异。在 Firefox 中以一种方式显示的内容在 IE 中将以另一种方式显示。在 Chrome 中看起来是一种方式的东西在 Safari 中看起来是另一种方式(即使它们都是基于 webkit 的)

将字体更改为“更安全”的字体,看看会发生什么。例如:

ctx.font = "72pt verdana"
ctx.fillText("lalalala", 0, 72);

应该在 IE9 和 FF4 中呈现相同的内容。

这当然不是最后一次。如果您正在做缩放和旋转字体之类的事情,您会遇到更奇怪的问题。在 Opera 或 Chrome 的非开发版本中试试这个:http://simonsarris.com/misc/scaleText.html

( screenshot of that problem )

所以解决方案是简单地找到一种字体,它最终在您想要定位的浏览器上看起来相同(通过反复试验,从网络安全字体列表开始),并尽量不要同时缩放 并在调用 fillText 之前旋转 Canvas 。甚至可能还有其他转换会在不同的浏览器中产生奇怪的效果,因此您应该在一个简单的案例中尝试您的字体,看看它是否真的看起来不同。

关于html - Canvas 上的文字在 IE 中看起来很垃圾...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216726/

相关文章:

html - 在视口(viewport)外预渲染 translate3d 内容

android - 将 ListView 添加到 Canvas

javascript - 在游戏关卡结束时退出 setInterval

javascript - 异步调用 AngularJS 不适用于 Canvas HTML

javascript - iPhone 上的锁定方向 UIWebView

jQuery fadeIn 不适用于 Z-index

html - CSS "child"选择器的行为类似于 "descendant"选择器

javascript - Javascript Canvas 游戏的边界

javascript - 如何使用CreateJS绘制弯曲的箭头?

javascript - 输入可见性不会在 javascript 中改变