Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript查找渲染的换行符_Javascript - Fatal编程技术网

使用javascript查找渲染的换行符

使用javascript查找渲染的换行符,javascript,Javascript,我有这样的情况: div{width:200px} 示例试试CSS div { width:200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 试试CSS div { width:200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 这可以使用CSS来完成。不需要Javasc

我有这样的情况:

div{width:200px}
示例
试试CSS

div {
  width:200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
试试CSS

div {
  width:200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

这可以使用CSS来完成。不需要Javascript

<div> example example example example example</div>
<style>
div{
    width: 200px;
    word-wrap: break-word;
}
</style>
示例
div{
宽度:200px;
单词包装:打断单词;
}

这可以使用CSS来完成。不需要Javascript

<div> example example example example example</div>
<style>
div{
    width: 200px;
    word-wrap: break-word;
}
</style>
示例
div{
宽度:200px;
单词包装:打断单词;
}
您可以使用及其简便的方法来确定在TextNode中标记扣押的字符

请注意,这显然需要在每次调整窗口大小/某些内容更改布局时重新计算

函数getLineBreaks(节点){ //我们只处理文本节点 如果(!node | |!node.parentNode | | node.nodeType!==3) 返回[]; //我们的范围对象形式,我们将得到字符的位置 常量范围=document.createRange(); //在这里,我们将存储所有线路 常量行=[]; //从第一个字符开始 range.setStart(节点,0); //初始位置 让prevBottom=range.getBoundingClientRect().bottom; 设str=node.textContent; 让current=1;//我们已经得到了索引0 设lastFound=0; 让bottom=0; //迭代所有字符 while(当前上下){//换行符 推( str.substr(lastFound,current-lastFound)//文本内容 ); prevBottom=底部; lastFound=当前; } 电流++; } //推到最后一行 行。推送(str.substr(lastFound)); 回流线; } log(getLineBreaks(document.querySelector('.test').childNodes[0])
div.test{
宽度:50px;
边缘底部:100px;
单词break:打破一切;
}
body>.as控制台包装{最大高度:100px}
这是一些相当长的内容,将以多行形式包装
您可以使用及其简便的方法来确定在TextNode中标记扣押的字符

请注意,这显然需要在每次调整窗口大小/某些内容更改布局时重新计算

函数getLineBreaks(节点){ //我们只处理文本节点 如果(!node | |!node.parentNode | | node.nodeType!==3) 返回[]; //我们的范围对象形式,我们将得到字符的位置 常量范围=document.createRange(); //在这里,我们将存储所有线路 常量行=[]; //从第一个字符开始 range.setStart(节点,0); //初始位置 让prevBottom=range.getBoundingClientRect().bottom; 设str=node.textContent; 让current=1;//我们已经得到了索引0 设lastFound=0; 让bottom=0; //迭代所有字符 while(当前上下){//换行符 推( str.substr(lastFound,current-lastFound)//文本内容 ); prevBottom=底部; lastFound=当前; } 电流++; } //推到最后一行 行。推送(str.substr(lastFound)); 回流线; } log(getLineBreaks(document.querySelector('.test').childNodes[0])
div.test{
宽度:50px;
边缘底部:100px;
单词break:打破一切;
}
body>.as控制台包装{最大高度:100px}

这是一个相当长的内容,可以用多行包装
你说的“剪切”文本是什么意思?您期望的输出是什么样子的?请尝试css文本换行属性。不需要javascript@RickyMo右,例如,如上所述,div扩展到2行。我只想获取行中的文本above@MayankDudakiya我需要获取上面一行中的文本,并且不想隐藏底线。您的意思是说您有类似的内容并尝试获取每个渲染行(
[“这是”、“一些”、“相当长”…
)?您所说的“剪切”是什么意思文本?您期望的输出是什么样子的?请尝试css文本换行属性。无需javascript@RickyMo对,如上所述,例如,div扩展了2行。我只想获取行中的文本above@MayankDudakiya我需要获取上面一行中的文本,而不想隐藏底线。您的意思是您有类似的内容并尝试获取吗每个渲染行(
[“这是”、“一些”、“相当长”…
)?他们想在CSS应用换行符后检索呈现文本的内容,他们不想知道如何执行换行。他们想在CSS应用换行符后检索呈现文本的内容,他们不想知道如何执行换行。他们想在CSS应用换行符后检索呈现文本的内容当CSS应用换行符时,他们不想知道如何进行换行。他们想在CSS应用换行符后检索渲染文本的内容,他们不想知道如何进行换行。