搜索

首页  >  问答  >  正文

javascript - 如何计算字符串宽度?

比如

var str = '你好,world'.

放到p中,且p是12px的字体,其他条件不考虑。那么str占得宽度是多少呢?

如果都是汉字,那么写8em是可以的。可以里面有中文和符号,js怎么处理呢?

过去多啦不再A梦过去多啦不再A梦2717 天前887

全部回复(3)我来回复

  • 黄舟

    黄舟2017-06-17 09:18:56

    这个算不出来,宽度不仅仅和字号有关,还有字体,间距等等有关。最好说说你的意图,觉得你考虑的方向不对

    回复
    0
  • 欧阳克

    欧阳克2017-06-17 09:18:56

    用canvas的measureText()API,倒是可以算出来,达到你的效果。但是,很显然,特定加到canvas里面去算,会显得多余,多此一举。
    //可能,加入间距这些,那就真的不好算了。

    回复
    0
  • 三叔

    三叔2017-06-17 09:18:56

    我有一计, 应该可行.
    把 p 设为 inline,
    https://jsfiddle.net/afqkt0d1/1/

    不可替换的内联元素盒的内容宽度是它里面渲染的内容(的内容宽度)(在所有子级的相对偏移之前)
    http://www.ayqy.net/doc/css2-...

    还有把 p 设为, 浮动或者 absolute, fixed 定位应该也可以, 这样就相当于让 p 拥有了包裹性.

    包裹性换种说法就是让元素inline-block化,例如一个p标签默认宽度是100%显示的,但是一旦被absolute属性缠上,则100%默认宽度就会变成自适应内部元素的宽度

    http://www.zhangxinxu.com/wor...

    回复
    0
  • 取消回复