我设计了一个类似于suckerfish模型的纯css下拉导航菜单,我想在主导航按钮和嵌套ul之间留下一点空间。为此,我在嵌套列表的顶部添加了少量填充。虽然在每个其他浏览器中都能很好地工作,但邪恶的IE有一点问题。
下拉列表(嵌套的ul)变得可见,因为您将鼠标悬停在包含它的li上,可以通过直接悬停在主导航按钮上,也可以将鼠标悬停在嵌套的ul上,这是ul li的子级。问题是IE的任何版本都没有考虑到悬停所涉及的元素本身的元素部分的填充,因此只要您从主导航按钮鼠标按下到下拉列表中,它就会丢弃悬停并且下拉消失。
但是,我最近发现,如果你没有背景设置,IE只会这样做。如果我将填充放在嵌套的ul上,并设置背景,它可以正常工作。这是一个haslayout问题吗?我不这么认为,因为我尝试了一些其他的东西来触发haslayout而无济于事。有没有其他方法可以解决这个没有背景?由于种种原因,我不能拥有一个。
哦,另外一个小窍门,我试过,它甚至可以使用rgba(0,0,0,0)的背景,换句话说是透明背景,这将是完美的,除了仅支持rgba的IE版本(换句话说,只有9及以上,所以9)。
任何想法都会非常感激,虽然这不是我的工作,因此我将无法发布任何代码。我想如果有必要我可以打个例子,但是在我遇到所有麻烦之前,我会先看看你们先想到了什么。提前谢谢!
答案 0 :(得分:1)
感谢您提出这个问题,我遇到了完全相同的问题,您想添加一个rgba(0,0,0,0)半修复引导我找到一个我认为适用于所有IE版本的解决方案不会影响已经工作的其他浏览器。
我创建了1像素乘1像素透明gif(我使用gif而不是png,因此IE的旧版本仍然可以工作),然后将其设置为下拉元素的背景。这是我的代码:
.nav .drop {
background: url(../images/1x1.gif);
}
希望能帮助其他遇到同样问题并遇到此帖的人。
答案 1 :(得分:0)
只需将100%透明的PNG作为背景......