我设计了一个类似于 Suckerfish 模型的纯 CSS 下拉导航菜单,我希望在主导航按钮和下拉的嵌套 ul 之间留一点空间。为此,我在嵌套列表的顶部添加了少量填充。虽然在所有其他浏览器中都能正常运行,但邪恶的 IE 有一个小问题。
下拉菜单(嵌套的 ul)变得可见,因为您将鼠标悬停在包含它的 li 上,或者直接悬停在主导航按钮上,或者悬停在嵌套的 ul 上,它是 ul li 的子级。问题是,没有任何版本的 IE 考虑元素本身的元素部分的填充,其中涉及悬停,因此,只要您将鼠标从主导航按钮向下移动到下拉列表中,它就会放下悬停并且下拉列表消失。
但是,我最近发现 IE 仅在您没有背景设置时才执行此操作。如果我将填充放在嵌套的 ul 上,并设置背景,它就可以正常工作。这是一个haslayout问题吗?我不这么认为,因为我尝试了其他一些方法来触发 haslayout 无济于事。有没有其他方法可以在没有背景的情况下解决这个问题?由于多种原因,我不能拥有一个。
哦,另一个花絮,我试过了,它甚至适用于 rgba(0,0,0,0) 的背景,换句话说,透明背景,这将是完美的,除了仅在支持 rgba 的 IE 版本中(换句话说, 只有 9 及以上,所以 9)。
任何想法都将不胜感激,尽管这不是我一个人的工作,因此我将无法发布任何代码。我想如果有必要我可以打出一个例子,但在我遇到所有这些麻烦之前,我会先看看你们的想法。提前致谢!