【发布时间】:2021-02-20 06:33:32
【问题描述】:
我有这个 HTML 页面使用 div 框,其中添加了文本,而没有空格的长字符串(如 aaaaa 垃圾邮件)会导致文本从 DIV 中溢出,甚至不包含它。
我不希望 overflow: scroll 让 div 变成一个可以滚动的框,我希望它转到下一行。
我尝试了多种解决方案,涉及带有单词 wrap 或 overflow 和 break-word 的属性,但没有奏效。
它必须是我使用的 DIV 元素,我必须放入不同类型的彩色文本,<textarea> 不会让我这样做。它只是将我添加的元素视为字符串,而不是 HTML。
oninput 代码只是在你输入很多字时调整 div 框。
所以;
- 我想制作带有文本的
innerHTML元素以包裹在 div 框中 - 必须是
div元素 - 必须换行,不能滚动。
我当前的代码:
- 当你有一个没有空格的长词时:就从屏幕上消失。
- 适用于“狐狸跳过懒惰的棕色狗”之类的句子
我感觉这是一个 CSS 问题,但我只想说我使用的语言是 Javascript,以防万一。
.myClass {
height: 30vh;
width: 80%;
padding: 10px;
font-size: 14px;
text-align: left;
resize: none;
margin: auto;
background-color: gray;
}
div,
span {
white-space: pre;
overflow-wrap: break-word;
word-wrap: break-word;
display: inline-flex;
}
<div class="myClass" readonly="true" oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"'>
<span>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
</div>
【问题讨论】:
-
我给你做了一个sn-p。 oninput 的目的是什么?除非 div 是 contenteditable,否则它没有输入。让它内容可编辑然后只读有什么意义?请将 sn-p 更改为 minimal reproducible example 或许也可以看看这里:stackoverflow.com/questions/30273377/…