我试图设置一个窗体,显示并排显示两个元素之间的垂直分隔符。这些是问题参数:Firefox不尊重溢出:隐藏
- 任何元素的高度都是未知的,并且会因用户交互响应而改变JavaScript的内容。
- 分隔符应该覆盖整个元素的共享垂直边界,而不管哪个元素在任何给定时间碰巧都会更高。
鉴于上面看来,这种设置会做的伎俩:
<div>This is some text on top.</div>
<ol>
<li id="a">Lalalala</li>
<li id="b">Lololol</li>
</ol>
<div>And some text on the bottom.</div>
CSS
ol { overflow: hidden }
li { float: left; width: 5em; padding: 4px }
div { clear: both }
#a { background: gold; min-height: 100px }
#b { background: yellow; border-left: 1px black dotted }
#b { padding-bottom: 400px; margin-bottom: -400px } /* "infinitely" tall */
的想法是,第二个元素变为“无限高”通过应用底部填充并得到一个左边界;通过抵消具有负底部边距的填充物,将跟随该组的元素带回原始位置;并通过给父母overflow: hidden
隐藏垂直边框的“未使用”部分。
这种设置确实工作正常(JsFiddle)在Firefox,Chrome和IE> = 8(我的兼容性要求):
然而,当我尝试采用同样的技术在我real HTML火狐浏览器崩溃,似乎无法兑现在父元素上设置的overflow: hidden
。因此,无限高的垂直边框将在页面上的两个面板之后的所有元素中流出。
Here是(简体)真实复制/粘贴内容的JSFiddle,以及显示问题的实际CSS规则。请注意,只有Firefox不正确处理这个;其他浏览器继续正确显示它。
正确的渲染:
Firefox的渲染:
我难倒正确:为什么火狐正确显示概念证明和别别扭扭真正的交易?我该如何解决它?
您是否尝试过搜索功能? http://stackoverflow.com/questions/1673346/fieldset-firefox-overflow-css-fix http://stackoverflow.com/questions/19025873/how-come-overflowhidden-works-on-a-div-but -not-a-fieldset-in-firefox – Jarno
@Jarno有趣的链接。这个其他问题可能指向一个相关的错误,但解决方案/解决方法似乎并不明显。目前的问题对我来说依然有效。 –
@Jarno:其实我有,但没有后见之明,在搜索中应该包含“fieldset”并不是一目了然 - 它可能会过滤出真正有趣的结果。无论如何,谢谢你的贡献。 – Jon