我参加聚会有点晚了,但我想我找到了答案。
我一直使用word-break: break-word
它,因为它在大多数情况下都是完美的,如果有足够的空间它会包裹并保留单词,如果没有足够的空间它会破坏单词。MDN Web Docs说它已word-break: break-word
被弃用,但可能仍然有效,但我开始寻找替代方案的真正原因是 Visual Studio 不再自动完成break-word
:)
解决方案 ?
MDN - 溢出包装
溢出包装:任何地方;
将单词换行,并且仅在需要时才中断单词。
“该属性最初是一个非标准且无前缀的 Microsoft 扩展,称为 word-wrap,由大多数具有相同名称的浏览器实现。后来它被重命名为 overflow-wrap,其中 word-wrap 是一个别名。”
所以overflow-wrap
应该用word-wrap
.
var s = document.querySelector('div');
function a(){
s.removeAttribute('class');
s.classList.add('a');
}
function b(){
s.removeAttribute('class');
s.classList.add('b');
}
#class{
border: 1px solid rgb(255, 120, 120);
width: 100px;
margin-top: 10px;
margin-bottom: 10px;
border-radius: 2px;
}
btn{
border: 1px solid gray;
padding: 2px;
border-radius: 5px;
box-shadow: 0 0 2px gray;
cursor: pointer;
}
.a{
overflow-wrap: normal;
}
.b{
overflow-wrap: anywhere;
}
<span>overflow-wrap:</span>
<btn onClick="a()">Normal</btn>
<btn onClick="b()">Anywhere</btn>
<div id='class'>
We need a very long word like Supercalifragilisticexpialidocious
</div>
<i>There's also overflow-wrap: break-word;</i>