我在 IE 8/7 中遇到了一个奇怪的问题,我经历了地狱(又回来)来达到一个最小的测试用例来证明这个问题......
考虑以下 HTML:
<form id="hover-test">
<fieldset>
<div id="hover">
<p>always visible</p>
<p class="hidden">Visble only on hover</p>
</div>
</fieldset>
<fieldset>
<a href="#" id="link">Please jump</a>
</fieldset>
</form>
这一点CSS:
form { background-color:#f5f5f5; }
.hidden { display:none; }
#hover:hover .hidden { display:block; }
#link { position:relative; }
它应该做什么:在悬停时,一个额外的段落变得可见,将下一个字段集及其所有内容向下推。(在 FF/Chrome/Safari/Opera 中运行良好)
它在 IE 7/8 中的作用:段落变为可见,向下推以下字段集。然而,由于我无法理解的原因,该链接保持固定不变。
在对重现问题的最小标记的令人沮丧的追逐中(当我从原始代码中删除单行 CSS 时效果消失了,但我的测试用例可以拥有它们并且仍然很好...... O_o)我确定了至少三个在这里一起工作的玩家:
- 字段集:如果我将所有内容放在 div 或没有字段集的表单中,一切都很好
- 位置:相对:取消注释该行和瞧 - 链接跳转。
- 背景颜色:这对我来说毫无意义,但没有它它可以工作。
所以,这是一个问题(除了隐含的“WTF?”):
有没有人知道是什么导致了这种行为?以及如何解决?或者至少提示我可以研究哪些已知的 IE 问题来进一步测试?
也许我可以想出一种方法来弯曲结构并且......比如说......在一些额外的包装div或其他东西上使用背景颜色,但这似乎......有点傻,无论如何,我觉得好像不是现在理解这一点会使事情变得非常复杂。