【问题标题】:Monospace font string width等宽字体字符串宽度
【发布时间】:2014-04-25 16:52:00
【问题描述】:

我有一个输入元素,它输入一个列表元素,两者都具有相同的等宽字体。 char_width_testspan 元素的 ID,该元素包含 1 个具有相同等宽字体的字符。我检查这个宽度和 乘以输入字段中给定的字符串长度以计算从该字符串创建的列表项的宽度。

var ul = document.getElementById('posts_list');
var li = document.createElement('li');
var txt = document.createTextNode(str);
ul.appendChild(li);
li.innerHTML = str;

li.style.width = (($("#char_width_test").width() * str.length)) + 'px';

上面的代码产生的宽度越长,字符串越长。似乎有一些变量会影响我缺少的宽度?

【问题讨论】:

    标签: javascript html css width monospace


    【解决方案1】:

    字符之间有字距调整,所以一个字符的宽度并不是你想要的倍数。

    http://en.wikipedia.org/wiki/Kerning

    确定一个字母的宽度和字距调整量后,您需要n * char_width + (n - 1) * kerning_width 才能更准确。

    如果跨度上没有填充或边距,我可能会尝试kerning = width_of_two_characters - (width_of_one_character * 2) 之类的东西。看看结果如何。

    【讨论】:

    • 似乎是一个不错的解决方案,但是我得到 width_of_two_chars = 20 和 width_of_one_char = 10
    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 2013-03-12
    • 2021-10-09
    • 1970-01-01
    • 2022-09-23
    • 2017-07-22
    • 2013-01-09
    • 2020-12-17
    相关资源
    最近更新 更多