看看这个<div>
元素:
<div id="text">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque pena­tibus et magnis dis parturient montes, nascetur ridiculus mus.</div>
这个CSS:
div#text {
font-family: Arial;
font-size: 16px;
width: 200px;
}
当这个 div 被渲染时,它被分成许多行,可能看起来像这个块:
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit。
Aenean commodo ligula
eget dolor。埃涅马萨。
Cum sociis natoque pena-
tibus et magnis dis
parturient montes, nascetur
ridiculus mus。
有没有办法使用Javascript提取这个div内容的第6行?这意味着,我想要一个函数,我将值传递给它3
,然后它返回»tibus et magnis dis«。这可能吗?如果是这样,如何做到这一点?
­
单词»penatibus« 中的软连字符 ( ) 使该单词分成两部分。
以类似的方式,考虑 css-property hyphen
:
div#text {
hyphens: auto;
}
这会导致渲染机器在不需要插入破折号或实体的情况下对文本进行连字符­
。
请记住,文本中没有换行符或<br>
任何其他将文本拆分为行的标记。只是渲染机器的自动换行算法以及 css 样式和文本字符串本身负责将哪些单词写入哪一行。
这也是这个问题与 this 不同的原因。
这个问题也与这个问题不同,因为那里发布的解决方案忽略了连字符的影响。
还要考虑连字(比如在许多字体中 f 后跟 i 被替换为新字形 fi,它比普通 f 后跟普通 i 短一点。这可能会影响自动换行和断字。但是当您将文本的每个字符放入<span>
-element 以便能够读取所有这些元素的位置时,您将不会看到 f 和 i 被其较短的连字 fi 替换,因此此方法不会返回正确的结果所有情况。