1

Blue inline-block #bwithvertical-align: middle放在里面red #a。在某个时刻blue #b具有其父级的完整高度。

http://jsfiddle.net/TK2qs/1/

麻烦制造者仅是 Opera [1],即使red parent #a[2] 下面有一些空间,它也会在窗口上放置垂直滚动条。超级有趣的细节是,标记中实际上没有任何东西似乎占用了下面的额外空间red #a——甚至document element不占用这个空间。

display: inline-block当或vertical-align: middle规则blue #b被丢弃时,注意到的行为消失。尽管如此,找到一个同时保持这两个规则的解决方案还是很有用的。

要重现 JSFiddle 中的问题,请拖动右下子框架的边框。

感谢您的关注!

[1_] 仅在我当前的版本中检查:12.11。

[2_] [jsfiddle.net 示例][1] 中大约 40-50 像素。大小随red #a高度而变化。

4

2 回答 2

2

我同意furikuretsu的回答。 overflow:hidden摆脱神秘的隐形内容。

奇怪的是,我在里面放的文字越多div#c,空间就越小。当文本填充超过一半高度时,空间完全消失。这是一个观察,而不是解决方案!

我将此作为错误报告给 Opera。不知道会不会有什么好处...

于 2013-02-02T14:50:15.110 回答
1

http://jsfiddle.net/Mpmgv/

我自己找到了两种解决方法。

首先是隐藏溢出的blue #b。它是一个可行的解决方案这一事实让我想到隐形的大元素可能位于内部某处blue #b,而不是其他任何地方。

第二种解决方法是在blue #b. 因此,所有打算放入的内容都blue #b将进入合成子项。

red #a您可以通过在元素上添加适当的类来检查这两种解决方案。

尽管如此,我仍然等待并非常感谢任何关于在 Opera 中出现这种奇怪问题的原因的想法。

于 2013-02-02T13:32:03.227 回答