javascript - 如果需要,将附加句子分成多行

标签 javascript html css

我想在页面上附加一个句子或段落,同时保留单词的 id,以便以后可以更改每个单词的颜色。

该代码工作正常,但有一个问题需要帮助才能找到解决方案。

如果需要,我想查看多行长句子。到目前为止,长句子都停留在单行中,你看不到整个句子!

我使用了word-wrap:break-word;但没有成功!

let shortSentence = ['i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you']

let longSentence = ['i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you', 'i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you', 'i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you','i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you']

//generateParagraph(shortSentence); // Works fine
generateParagraph(longSentence); // Not working

function generateParagraph(sentence) {

    let paragraph = document.getElementById("paragraph");

    for(let i = 0; i < sentence.length; i++){
        sentence[i] = ' ' + sentence[i];
    }
    sentence[0] = sentence[0].trim();

    let paragraphSpans = '';

    for (let i = 0; i < sentence.length; i++) {

      paragraphSpans += `<span class='spans' id='spanID${i}'>${sentence[i]}</span>`;

    };

    paragraph.innerHTML = `${paragraphSpans}`;

};
html{
  overflow: hidden;
  background-color: transparent;
}

.paragraphContainer {
    position: absolute;
    overflow: hidden;
    left: 8.7vw;
    top: 25vh;
    height: 55vh;
    width: 82vw;   
    outline: 0.1vw dashed orange;
}

.paragraph-class {
    position: absolute;
    white-space: pre-wrap; 
   /* word-wrap: break-word;*/
    font-family: 'Open Sans', sans-serif;  
    font-weight:400;
    font-size:2vw;
    color: #595959;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
<!DOCTYPE html>
<html>
<head>

  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&display=swap" rel="stylesheet">

</head>

<body> 

<div class="paragraphContainer"> 
<div id="paragraph" class="paragraph-class"></div>
</div>


<script src="script.js"></script>
</body>

</html>

最佳答案

flex-wrap:wrap; 添加到 .paragraph-class

let shortSentence = ['i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you']

let longSentence = ['i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you', 'i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you', 'i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you','i', 'love', 'my', 'family', 'so', 'much', 'what', 'about','you']

//generateParagraph(shortSentence); // Works fine
generateParagraph(longSentence); // Not working

function generateParagraph(sentence) {

    let paragraph = document.getElementById("paragraph");

    for(let i = 0; i < sentence.length; i++){
        sentence[i] = ' ' + sentence[i];
    }
    sentence[0] = sentence[0].trim();

    let paragraphSpans = '';

    for (let i = 0; i < sentence.length; i++) {

      paragraphSpans += `<span class='spans' id='spanID${i}'>${sentence[i]}</span>`;

    };

    paragraph.innerHTML = `${paragraphSpans}`;

};
html{
  overflow: hidden;
  background-color: transparent;
}

.paragraphContainer {
    position: absolute;
    overflow: hidden;
    left: 8.7vw;
    top: 25vh;
    height: 55vh;
    width: 82vw;   
    outline: 0.1vw dashed orange;
}

.paragraph-class {
    position: absolute;
    white-space: pre-wrap; 
   /* word-wrap: break-word;*/
    font-family: 'Open Sans', sans-serif;  
    font-weight:400;
    font-size:2vw;
    color: #595959;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    
    /* new css */
    flex-wrap: wrap;
    padding: 20px; /* optional */
}
<!DOCTYPE html>
<html>
<head>

  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&display=swap" rel="stylesheet">

</head>

<body> 

<div class="paragraphContainer"> 
<div id="paragraph" class="paragraph-class"></div>
</div>


<!-- <button id="myBtn">Try it</button>

<script>
document.getElementById("myBtn").addEventListener("click", function(){
  Read();
});
</script> -->


<script src="script.js"></script>
</body>

</html>

关于javascript - 如果需要,将附加句子分成多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60511493/

相关文章:

javascript - 使用connected-react-router在React + Redux中推送状态

javascript - 如何通过跨 Android 和 iOS 的 Javascript 检测设备上的触摸?

html - 如何在旋转图像下方显示文字

javascript - 使整个 div(包括文本)可点击

c# - 如何跨 MVC 站点共享通用样式信息(css、图像等)?

javascript - 盒子后面奇怪的盒子阴影

javascript - 如果正则表达式被字符包围,则不要替换它

JavaScript 自动提交表单

html - WCAG 标准的可访问性 - 如何处理标签内的标签

html - CSS等效比较还是合并?