Javascript 如何将css工作中断规则中的句子转换为字符串?
Javascript 如何将css工作中断规则中的句子转换为字符串?,javascript,html,css,Javascript,Html,Css,一些 话 wordswo大佬123字 我想我没有抓住问题的重点,所以这里有一个 旧答案 添加id <div id="myDiv" style="width:10px"> some words </div> 现在,您可以使用正则表达式或其他字符串方法来更改myTxt,然后将其放回原处,只需: document.getElementById("myDiv").innerHTML = myTxt; 一些可能对您有所帮助的想法: 使用正则表达式生成新行/\n/ 使
一些
话
wordswo大佬123字
我想我没有抓住问题的重点,所以这里有一个
旧答案 添加id
<div id="myDiv" style="width:10px">
some words
</div>
现在,您可以使用正则表达式或其他字符串方法来更改myTxt
,然后将其放回原处,只需:
document.getElementById("myDiv").innerHTML = myTxt;
一些可能对您有所帮助的想法:
- 使用正则表达式生成新行
/\n/
- 使用regex或
查找某物的位置indexOf()
- 基于换行符
,或比较.split(“\n”)
.indexOf(“\n”)
- html:
<div class="oneWordOneLine">
some words
</div>
.oneWordOneLine {
word-spacing: 999999px;
}
或者你也可以使用字间距:100vw代码>
如果您有一个固定宽度的元素,您可以将元素本身的确切宽度作为字间距的值:
.oneWordOneLine {
width: 100px;
word-spacing: 100px;
}
一种可能的方法是“滚动范围”。将其移动到textNode中,检查其高度变化的点。像这样:
函数getWordsByLines(textNode){
常量字=[];
const textLength=textNode.data.length;
const range=textNode.parentNode.ownerDocument.createRange();
范围。选择NodeContents(文本节点);
设prevHeight=NaN;
让单词='';
设rangeEnd=0;
while(rangeEnd)请创建一个。是否需要对齐该字符串的视觉表示形式(给定宽度是任意的)使用它的逻辑表示-换句话说,按照显示的方式拆分字符串?这看起来不像是一项简单的任务:一种可能的方法是在可能的范围和它们的clientract之间循环。我可以问一下,为什么需要这样做,背后的目标是什么吗?@raina77ow我创建了一个dom输入,让用户输入一些内容,然后移动这些内容文本到画布。这如何回答OP的问题?问题相当广泛,关键问题是“有没有办法转换它们?”通过将文本保存到一个变量,然后对其进行操作,然后将其放回原处,我们就可以做到这一点。我进一步给出了解决Op想要解决的两个问题的方法。@Jensei但是一个使用word wrap
样式的文本节点仍然是同一个文本节点。除非它们位于thout the style too.因此你的答案对OP没有用处。据我所知,OP想知道当容器使用word wrap时,哪些单词在哪一行。你的答案没有正确反映这一点。你是对的,我错过了wordwrap的要点。但是这个问题实际上是重复的。我更新了这个问题,并添加了一个链接,指向当这个问题出现时uestion之前被问过。一旦你在javascript中有了换行符,使用我的答案中的“一些可能对你有帮助的想法”部分来找出每行上的单词就很简单了。我只是想在这里提供帮助。没有理由讨厌。还有,很抱歉,伙计们,使用代码片段对于这项任务来说真的很麻烦(
.oneWordOneLine {
width: 100px;
word-spacing: 100px;
}