suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie berechnet man die Saitenbreite?

Zum Beispiel

var str = '你好,world'.

Fügen Sie es in p ein, und p ist eine 12-Pixel-Schriftart. Andere Bedingungen werden nicht berücksichtigt. Was ist also die Breite von str?

Wenn es sich bei allen um chinesische Schriftzeichen handelt, ist es in Ordnung, 8em zu schreiben. Es können chinesische Schriftzeichen und Symbole darin enthalten sein.

过去多啦不再A梦过去多啦不再A梦2717 Tage vor889

Antworte allen(3)Ich werde antworten

  • 黄舟

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

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

    Antwort
    0
  • 欧阳克

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

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

    Antwort
    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...

    Antwort
    0
  • StornierenAntwort