javascript - 如何使用自动换行来计算行数 : break-word?

标签 javascript jquery

是否可以知道一个 div 内有多少行,没有换行符,但只有“word-wrap:break-word”?

我如何知道这个 div 内的总行数?

<div id="content_text" style="word-wrap: break-word; background: red; color: white; width: 100px;">dsadasdasdsadasdasdsadasdasdsadasdasdsadasdas</div>

最佳答案

您可以创建一个元素的副本,只在其中放置一个字符并获取高度,即一行的高度:

function getLineHeight(element) {
    const copy = element.cloneNode();
    copy.style.visibility = 'hidden';
    copy.style.position = 'absolute';
    copy.textContent = 'a';
    element.parentNode.appendChild(copy);

    const lineHeight = copy.offsetHeight;

    lineHeight.remove();

    return lineHeight;
}

然后,您可以按如下方式获取行数:

const linesCount = Math.round(element.offsetHeight / getLineHeight(element));

希望我没有错过任何事情。

关于javascript - 如何使用自动换行来计算行数 : break-word?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61352400/

相关文章:

javascript - jQuery 事件从对象获取所有数据

javascript - Angular $broadcast 不起作用

javascript - Highstock highcharts 不规则数据在 x 尺度上出错

html - 如何用 JQuery 删除 "onclick"?

javascript - Google 控件类别过滤器

javascript - React.JS 视频播放器错误

javascript - 在循环中添加事件监听器 (mouseenter),但仅在 1500 毫秒后触发 - 清除超时问题

javascript - 如何创建数组并为 typescript 中的任何索引赋值

javascript - jqGrid清空并重新显示

javascript - 我的 jQuery 链接不正确