javascript - 是否可以测量左对齐文本中的最大自动换行宽度?

标签 javascript html css dom

是否可以测量左对齐文本中的实际自动换行宽度?

例如,下面的语句是左对齐的。根据元素的宽度,它可以包裹在单词“their”或单词“the”处。

标记为红色的宽度与元素宽度不一致,因为当单词不适合行时会在随机位置发生换行。

enter image description here

是否可以测量这个宽度?

最佳答案

这可能不是您想要的,因为它会修改您的标记,但我使用的技巧是获取您的文本并将每个单词包装在一个范围内。然后我查看每个 span 标签并确定哪个是最右边的:

Demo

代码:

标记:

<div class="test">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </div>

<div class="results">
</div>

带有 jQ​​uery 的 JavaScript:

var text  = $('div.test').text();
var words = text.split(' ');
var html  = '';

$.each(words, function(i, word) {
    html += '<span>' + word + '</span> ';
});

$('div.test').html(html);

var farthestRight = 0;
$('div.test span').each(function(i,e) {
    var left = $(e).position().left;
    var width = $(e).width();

    if (left + width > farthestRight) {
        farthestRight = left + width;
    }

    // Uncomment to see debug data
    // $('.results').append('<div>' + left + ', ' + width + ', ' + (left + width) + '</div>');
});

$('.results').append('<div>' + farthestRight + '</div>');

关于javascript - 是否可以测量左对齐文本中的最大自动换行宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676115/

相关文章:

javascript - 制作图像面向运动方向html

css - 伪 CSS 元素不显示在父 div 之外

javascript - 了解对对象字面量选项的函数调用

javascript - 停止 Spinner.js

javascript - 如何在此 HTML 中选择下一个 "select"(下拉列表)?

css - 如何编写 LESS 表达式?

css - 我的@font-face 根本不工作

javascript - 如何将输入文本类型值传递给javascript函数| ionic v1

javascript - 使用 sheetJS 在单个工作表中的多个表

html - html类的双引号