我在absolute
位置的容器中有一个#blah
- 定位元素absoute
。
此处的代码会生成不需要的换行符:
#container { position: absolute; }
#blah {
position: absolute;
max-width: 20em;
word-wrap: break-word;
}

<div id="container">
<div id="blah">Blah dqsd</div>
</div>
&#13;
当然,我们可以添加white-space: pre;
:这可以解决换行问题,但会使max-width: 20em;
无法解决Firefox : (
#container { position: absolute; }
#blah {
position: absolute;
max-width: 20em;
word-wrap: break-word;
white-space: pre;
}
&#13;
<div id="container">
<div id="blah">Blah WWWWWW WWWWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWWWWWWWWWWWWWW WWWWWWWWWWWW</div>
</div>
&#13;
如何在第一个单词后没有换行符,但最大宽度仍在Firefox上工作?
答案 0 :(得分:3)
您需要为绝对定位的div定义宽度,只是设置max-width将不再具有绝对位置的宽度,而word-wrap: break-word
会导致问题:
#container { position: absolute; width:100%}
#blah {
position: absolute;
max-width: 20em;
width: 100%;
word-wrap: break-word;
}
<div id="container">
<div id="blah">Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd</div>
</div>
答案 1 :(得分:1)
在此之前,我们可以讨论原因为什么会造成这种情况。
position: absolute
:绝对定位的元素尽可能采用最小宽度。在您的情况下,这是第一个单词的长度或最长单词的长度。word-wrap: break-word
:在第一个空格中打破可能的单词!此问题的解决方案很简单。
width
将解决问题。white-space: nowrap
将确保文本不会中断。我不会说这是一个问题,但这是预期的行为!
#container { position: absolute; width:100%}
#blah {
position: absolute;
max-width: 20em;
width: 100%;
word-wrap: break-word;
}
&#13;
<div id="container">
<div id="blah">Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd</div>
</div>
&#13;
#container { position: absolute; width:100%}
#blah {
position: absolute;
max-width: 20em;
white-space: nowrap;
word-wrap: break-word;
}
&#13;
<div id="container">
<div id="blah">Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd Blah dqsd</div>
</div>
&#13;