您可以try 使用word-break: break-all
代替overflow-wrap: break-word
:
.list-item {
display: list-item;
background-color: gray;
width: 100px;
list-style-position: inside;
word-break: break-all;
}
<div class="list-item">
testlonglistitemtext
</div>
这两个属性的MDN注释总结了差异.
break-word
的音符:
与...overflow-wrap: break-word
...不同,word-break: break-all
将在文本溢出其容器的确切位置创建一个分隔符(即使将整个单词放在一行中也不需要分隔符).
相应的音符为overflow-wrap
:
与word-break
不同的是,overflow-wrap
只有在无法将整个单词放在它自己的行上而不溢出时才会创建分隔符.
简而言之,之所以出现这种行为,是因为overflow-wrap: break-word
将tries to fit as much of the word as possible放入行框前断开,而word-break: break-all
breaks as soon as it needs to则将单词保留在内容框内.