- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我一直在试验 canvas 标签和 Javascript。我制作了一个页面,该页面从 Twitter 公共(public)时间线获取推文并将其动画化。它通过在动画背景中使用 Canvas 元素来工作。动画完成后,它会在顶部创建一个具有相同文本的 div 元素。我这样做是为了让推文文本可以选择并且链接可以点击。
现在,在 Safari、Chrome 甚至 Opera 中,canvas 文本和 div 文本看起来几乎完全一样。然而在 Firefox 中,文本的大小差异足以使其在变为 div 时“跳转”。
有谁知道如何使用 CSS 使 Firefox 在 canvas 元素和 div 上呈现相同的文本?或者这是与引擎的渲染不一致。
我已经把页面on my website如果你想明白我的意思。
现在是代码:
我用于呈现 div 的 CSS 包含:
line-height: 21px; font-weight: 100; font-family: Georgia, "New Century Schoolbook", "Nimbus Roman No9 L", serif; font-size: 20px;
为了在我使用的 Canvas 上渲染:
this.context.font = this.scale + 'px Georgia';
this.context.fillStyle = "white";
this.context.strokeStyle = 'white';
this.context.fillText(this.text, 0, 0);
this.context.strokeText(this.text, 0, 0);
其中 this.scale 是一个动画比例因子,精确到 20px。因此,回顾一下,我使用相同的字体并以相同的 px 大小结束,但 Firefox 在 Canvas 和 CSS 之间呈现不同的文本。
(edit) 这是一个截图示例: alt text http://danforys.com/temp/firefox-behaviour.png
第一行是使用 Canvas 动画的文本,第二行是生成的 div。
最佳答案
对了,我有一个 test case .
我用相同的文本并排创建了一个 div 和 canvas 元素。事实证明,字体渲染是一条红鲱鱼。 Firefox 的不同之处在于字符宽度的报告。我的 Twitter 可视化工具使用 measureText().width 计算每个字符的宽度并相应地放置它们。由于某些原因,Firefox 上的字符宽度较小。
奇怪的是,在测试用例中我测量了两件事:
在 Chrome 中,它们都以 399px 显示。在 Firefox 中,第一个显示为 393px,第二个显示为 367px。
编辑:该错误已被关闭。 Mozilla 说 it's invalid ,我仍然说它与其他浏览器不一致。我必须找到另一种方法来做到这一点,或者找到足够的信息来说服 Mozilla 这毕竟是一个错误。无论如何,感谢您的收听!
关于javascript - 使 Firefox 渲染 Canvas 文本与 CSS 文本相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763349/
在我的 OpenGL 程序中,我按顺序执行以下操作: // Drawing filled polyhedrons // Drawing points using GL_POINTS // Displa
我想传递一个包含原始页面的局部变量,这个变量只包含一个带有值的符号。 当我使用此代码时,它运行良好,可以在部分中访问 origin 变量: render :partial => "products",
为什么这个 HTML/脚本(来自“JavaScript Ninja 的 secret ”)不渲染? http://jsfiddle.net/BCL54/
我想在阅读完 View 后返回到特定的网页位置(跳转到页内 anchor )。换句话说,在 views.py 中,我想做类似的事情: context={'form':my_form} return r
我有一个包含单条折线的 PathGeometry,并以固定的间隔向该线添加一个新点(以绘制波形)。使用 Perforator 工具时,我可以看到每次向直线添加一个点时,WPF 都会将整个 PathGe
尝试了解如何消除或最小化网站上不同 JavaScript 库的渲染延迟。 例如,如果我想加载来自许多社交网络的“即时”关注按钮,它们似乎会相互阻止渲染,并且您会收到令人不快的弹出窗口。 (func
我有以 xyz 点格式表示 3D 表面(即地震断层平面)的数据。我想创建这些表面的 3D 表示。我使用 rgl 和 akima 取得了一些成功,但是它无法真正处理可能会自行折叠或在同一 x,y 点具有
我正在用 Libgdx 编写一个小游戏。 我有一个 Render[OpenGL] 线程,它不断对所有对象调用 render() 和一个更新线程不断对所有对象调用 update(double delta
我有一个 .Rmd 文件包含: ```{r, echo=FALSE, message=FALSE, results='asis'} library(xtable) print(xtable(group
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
请不要评判我,我只是在学习 Swift。 最近我安装了 MetalPetal 框架,并按照说明操作: https://github.com/MetalPetal/MetalPetal#example-
如果您尝试渲染 Canvas 宽度和高度之外的图像,计算机是否仍会尝试渲染它并使用资源来尝试渲染它?我只是想找出在尝试渲染图像之前检查图像是否在 Canvas 内是否更好。 最佳答案 我相信它仍然在无
我在 safari 中渲染时遇到问题。 在 firefox、chrome 和 IE 上。如下图所示: input.searchbox{-webkit-border-radius:10px;-moz-b
我正在尝试通过远程桌面在 Windows7 下运行我在 RHEL7 服务器中制作的 java 程序。 服务器中的所有java程序都无法通过远程桌面呈现。如果我在服务器位置访问服务器本身,它们看起来没问
我正处于一个新项目的设计阶段,该项目将采用数据集并将其加载到文档中,然后围绕模板呈现文档。呈现的文件可以是 CSV 数据集、PDF 营销信函、电子邮件……很多东西。数据不会是数学方程式,我只是在寻找一
有没有办法在不同的 div 下渲染 React 组件的子组件? ... ... ... ... ...
使用以下代码: import numpy as np from plotly.offline import iplot, init_notebook_mode import plotly.graph_
截至最近, meteor 的所有文档都指出 onRendered是一种在模板完成渲染时获取回调的新方法。和 rendered只是为了向后兼容。 但是,这似乎对我不起作用。 onRendered永远不会
所以在我的基本模板中,我有:{% render "EcsCrmBundle:Module:checkClock" %} 然后我创建了 ModuleController.php ... getDoctr
我正在使用 vue-mathjax 来编译我的 vue 项目中的数学方程。它正在编译第一个括号 () 之间的文本。我想防止编译括号内的字符串。在文档中我发现,对于$符号,如果我们想逃避编译,我们需要使
我是一名优秀的程序员,十分优秀!