javascript - 在 Chromium 中使用 font-face 时元素的准确宽度

标签 javascript jquery google-chrome font-face

您好,Stackoverflow 随机访问者 - 感谢您阅读我的问题!

这是一个演示我的问题的最小页面:http://lisperati.com/text_bug/text_bug.html

如果您使用 Chrome/Chromium 访问该页面,它将立即和 1 秒后计算包含文本的 div 的宽度。在我的机器上,关于宽度,我得到两个截然不同的答案。您有机会知道这两种宽度计算给出不同结果的原因吗?

我未经教育的猜测是,渲染字体项目时存在一些奇怪的延迟,要么是由于加载文件的延迟,要么是其他原因(尽管我的测试表明这个问题与获取字体文件无关)一般来说,我的理解是,一旦插入完成并将控制权返回给 JavaScript 代码,插入到 DOM 中的动态元素就会正确布局。

对我来说,比理解“为什么”发生这种情况更重要的是了解如何正确调整此问题。您可能知道,IMG 元素有一个“onload”事件,可用于在加载图像后查找图像的准确尺寸。当字体元素完全布局时,是否可以使用一些类似的事件来调整此问题?对于如何获得使用 font-face 样式的元素的准确宽度而不只是有任意 1 秒的延迟,您还有其他建议吗?

非常感谢 StackOverflow 的读者 friend 们针对这个阻碍我工作的小故障提供任何提示!

顺便说一句 - 我最近问了一个相关问题(http://stackoverflow.com/questions/4636079),但已经进一步缩小了问题范围,导致了这个新的、更具体的问题。

最佳答案

这绝对是一个问题,并且无法用 Google 的字体加载器解决

http://code.google.com/apis/webfonts/docs/webfont_loader.html

因为它在 Safari 中不起作用。弄清楚原因会很高兴,因为目前除了在 document.ready 事件之后添加延迟之外,与 @font-face 结合使用时似乎没有准确的方法来读取容器的宽度和高度。但添加延迟仍然是猜测,最终是一个糟糕的解决方案。

关于javascript - 在 Chromium 中使用 font-face 时元素的准确宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701892/

相关文章:

google-chrome - 在端口 3000 上运行的 Chrome 服务 worker 进程?

javascript - 在提交时单击按钮启用下一个选项卡?

javascript - 如何在 Chrome 扩展程序图标顶部设置文本

javascript - JQuery/AJAX 从外部文件读取数据

javascript - 如何在函数中设置 cookie 长度时间

JavaScript:在单击时生成范围内的随机数并在每次下一次单击时添加随机数

jquery - 使用 jQuery 操作 html

javascript - 使用变量修改日期选择器中的 maxDate 和 minDate

javascript - 如何设置/检测页面中浏览器 native 搜索生成的突出显示框

javascript - 有什么方法可以在 Chrome DevTools 中重新分配 const 吗?