假设我有两个框:div.box
和textarea.box
,每个框都有相同的固定宽度和高度。每一个都有相同的文本,包括一个verrryyyyy长单词,后面跟着一系列短单词。
安装程序可能如下所示:
CSS:
.box {
width: 400px;
height: 100px;
}
HTML格式:
<div class="box">
looooooooooooooooooooooooooooooooooooooooooooooooooooooooong_word and short text
</div>
<br><br>
<textarea class="box">
looooooooooooooooooooooooooooooooooooooooooooooooooooooooong_word and short text
</textarea>
使用上述代码,
div
不会打断长单词,然后在下一行以一系列短单词开始:然而,
textarea
打破了这个长单词:我的问题:为什么会这样?什么默认css导致
div
将长单词放在一行(即不打断单词),而textarea
将其打断?JS Fiddle Example。
最佳答案
Chrome默认文本区域样式:
textarea {
-webkit-appearance: textarea;
background-color: white;
border: 1px solid;
border-image: initial;
-webkit-rtl-ordering: logical;
-webkit-user-select: text;
-webkit-box-orient: vertical;
resize: auto;
cursor: auto;
padding: 2px;
white-space: pre-wrap;
word-wrap: break-word;
}
word-wrap: break-word;
是原因。overflow
属性只能隐藏溢出的内容或允许滚动它。使用word-wrap: break-word;
允许长单词被打断。