CSS 文字不换行?

CSS Text doesn't wrap?

我正在开发一个网络应用程序,在我页面上的一个 <div>s 中,文本没有换行,而是溢出了。

现在,<div> 有两个阶段:一个未展开,一个展开。 不展开的时候,我用下面的CSS:

div.todo-item-title{
    display: inline-block;
    max-width: 90%;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden; 
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

使用这个CSS,我实现了以下效果:

基本上它有一个max-width: 90%(这样就不会开箱即用),overflow: hidden(这样隐藏溢出),white-space: nowrap(这样文本不换行)和 text-overflow: ellipsis(以便它在末尾显示 3 个点)。而这个结果正是我想要的。

现在,在第二种状态下,我扩展了 <div> 的父级(您在图像上看到的黑框)的高度,并且我 想要显示文本充分并在必要时包裹

所以这是我在文本中使用的 CSS:

div.todo-item-title{
    display: inline-block;
    max-width: none;
    text-overflow: initial;
    white-space: normal;
    overflow: auto; 
    position: relative;
    top: 4px;
}

所以,我有:

但是,现在看起来像这样:

出于某种原因,它仍然没有换行。我做错了什么?

它不换行,因为你有一个没有空格的长词。

在这种情况下,使用:

word-wrap: break-word;