如何计算输入HTML元素的宽度以使其与其内容的大小相匹配?

JB *_*aux 8 html javascript css input auto-update

如何计算输入HTML元素的宽度以使其与其内容的大小相匹配?我已经在用户输入时动态更新输入:

<input type='text' onkeydown='this.size=this.value.length' />
Run Code Online (Sandbox Code Playgroud)

但是,这似乎并不完全正确,因为它没有考虑到某些字符比其他字符长的事实:

  • 如果我只键入一些"l"字符,我会得到越来越多的空格
  • 如果我只键入一些"w"字符,则大小不足

如何进行?

PS:为什么我要这样做(已经在已删除的答案中回答了这个问题)?我有句子,我必须通过输入替换括号内容(例如:[user]是[年]旧).我不知道这个句子是什么,所以我不知道输入的长度是多少,我想让它在一行上保持可读(避免太多的空格).

dda*_*dda 4

您可以使用(隐藏的)画布和measureText()上下文的方法来获取字符串的宽度。

编辑:

看上去速度够快的