Blue inline-block #b
的 vertical-align: middle
位于red #a
内。在某个时刻blue #b
具有其父级的全高。
麻烦制造者只有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示例]中有大约40-50像素[1]。尺寸因red #a
高度而异。
答案 0 :(得分:2)
我同意furikuretsu的回答。 overflow:hidden
摆脱了神秘的无形内容。
奇怪的是,我放在div#c
内的文字越多,空间越小。当文本填充超过一半的高度时,空间完全消失。这是观察,而不是解决方案!
我将此报告为Opera的一个错误。不知道它是否会做任何好心......
答案 1 :(得分:1)
我自己找到了两个解决方法。
首先隐藏blue #b
的溢出。事实上它是一个可行的解决方案让我认为隐形大元素可能位于blue #b
内的某个地方,而不是其他任何地方。
第二种解决方法是在blue #b
内创建合成的绝对定位子项。因此,所有打算放在blue #b
中的内容都将用于合成儿童。
您可以在red #a
元素上添加适当的类来检查这两种解决方案。
尽管如此,我仍然等待并高度赞赏有关Opera出现这种奇怪问题的原因的任何想法。