我有一个包含两个项目的容器div:.button
和.box
里面有文字。 .button
首先出现并且正确地浮动。 .box
没有浮动[这是一个约束 - 由于类似的其他依赖于没有浮动的结构,我无法将其浮动)。 .box
有overflow: hidden;
来建立新的块格式化上下文。这允许.box
跨越“100%直到”前一个浮动元素.button
。
.outer-container
容纳所有这些并且正确地浮动。
在Chrome(26.0.1410.12 beta-m PC,25.0.1364.99 Mac),Safari(6.0.2 Mac)和IE8-9中,这将以所需的方式运行。 .box
的文字保持在一行,并且由于.outer-container
的右浮动,将完全是它需要的大小。但是,在Firefox中,文本被分成另一行。
当.button
向左浮动时,我也发现了一个类似的问题 - 除了Firefox之外,我得到了所有行为。
我已经看到这款适用于PC的Firefox 16.0.1和19.0以及适用于Mac的18.0.1和19.0。这是一个错误吗?
答案 0 :(得分:42)
我今天遇到过这个问题,即使将display
设置为inline-block
之后,浮动节点也会在Firefox中断行,其原因是< b>容器节点的样式设置white-space
设置为nowrap
。
因此,在容器节点上将white-space
的值重置为normal
可以解决此问题。
答案 1 :(得分:5)
将display: inline-block;
添加到.box
:
答案 2 :(得分:0)
实际上,当你想要一个类似的解决方案时
http://jsfiddle.net/Volker_E/x5rPd/
您不需要第二个div
来表达您想要的行为。
答案 3 :(得分:0)
white-space: normal
没有为我做这个伎俩。在直接文本容器上有效white-space: nowrap;
。