有没有一种好的方法可以测量 Javascript/HTML5 中字符串的宽度(渲染时以像素为单位)
看起来我可以创建一个包含字符串的空 DOM 元素,将不透明度设置为零,显示它,然后测量元素的宽度,但这看起来确实很黑客。我想知道是否有更好的方法。有什么想法吗?
编辑:我需要渲染到屏幕时的像素宽度,而不是字符数:)
It seems like I could create an empty DOM element containing the string, set the opacity to zero, display it, and get then measure the width of the element, but that seems really hack-y. I'm wondering if there's a better way. Any ideas?
EDIT: I need the width in pixels when rendered to the screen, not the number of characters :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你是指像素宽度吗?不,没有简单的方法可以在 Javascript 中预测这一点,而无需浏览器渲染它。它很大程度上取决于浏览器选择的字体、字体大小(如果设置百分比或 em,则可能会受到继承的影响)、字母间距、元素填充等等。
您提出的在浏览器中渲染它的解决方案,即使不透明度或可见性为零:隐藏(感谢评论者)是我认为最好的方法。
Do you mean the pixel width? No, there's no easy way to predict that in Javascript without having the browser render it. It depends so much on what font the browser has chosen, font size (which could be affected by inheritance if set with percentage or em), letter spacing, element padding, etc ad nauseum.
Your proposed solution of rendering it in the browser, even with zero opacity or
visibility:hidden
(thanks commenters) is the best way I think.