【发布时间】:2019-02-17 01:38:36
【问题描述】:
我有一个最大宽度的跨度和一个没有 \n 或
的长文本。是否可以通过JS获取自动生成的换行符的位置?
“Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam voluptua”在小跨度内中断,例如这样:
“Lorem ipsum dolor sit amet,[break]
consetetur sadipscing elitr,[break]
sed diam voluptua"
我需要在换行符处拆分行或获取“隐藏换行符”字符的索引。
https://jsfiddle.net/DerLangeVonTetris/x63Ldcez/
HTML:
<h1 class="multiline-headline">
<span class="decoration-text">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam voluptua</span>
</h1>
<div class="preview"></div>
JS:
(function () {
var span = document.getElementsByTagName('span')[0],
spanLines = [];
// do magic start
spanLines.push(span.innerText.slice(0,27));
spanLines.push(span.innerText.slice(28,56));
spanLines.push(span.innerText.slice(57));
// do magic end
document.getElementsByClassName('preview')[0].innerText = JSON.stringify(spanLines);
}(window));
结果:
["Lorem ipsum dolor sit amet,","consetetur sadipscing elitr,","sed diam voluptua"]
为什么我需要这个:
https://jsfiddle.net/DerLangeVonTetris/xgbsvpdy/
当我添加
s 时,装饰中断 Polyfill“decofill”在 Edge 上工作。但是在响应式视图上,当我添加硬编码的 HTML 换行符时会遇到问题。因此我需要在客户端添加它们。
【问题讨论】:
-
你为什么需要这个?
-
除非您有等宽字体,否则很难做到这一点,但请访问 help centre 以查看该站点的 on topic 是什么类型的问题 - 目前是您的问题过于宽泛,因此离题
-
我添加了一些信息
-
你检查我的答案了吗?它工作得很好,看看它:)
标签: javascript split line-breaks