CSS问题:ie中自定义ul、li下拉导航,尤其是ie6溢出:可见错误
ie6 bug的本质(下拉条目必须通过溢出隐藏来截断,以防止ie错误地扩展,而不是作为溢出:可见)可以在下面的屏幕截图和网站上以其当前(黑客)形式看到 错误(ie6): 右(FF、IE8、镀铬): 菜单项应显示:CSS问题:ie中自定义ul、li下拉导航,尤其是ie6溢出:可见错误,css,internet-explorer-6,overflow,visible,Css,Internet Explorer 6,Overflow,Visible,ie6 bug的本质(下拉条目必须通过溢出隐藏来截断,以防止ie错误地扩展,而不是作为溢出:可见)可以在下面的屏幕截图和网站上以其当前(黑客)形式看到 错误(ie6): 右(FF、IE8、镀铬): 菜单项应显示: 联系我们 经销商 支持 设计师服务 但由于我无法获得溢出:可见工作或以其他方式模拟它,部分下拉菜单被切断。目前,ie6特定样式表中的css为: #zd-nav { padding-left:0; margin-left:0; background-color:tra
- 联系我们
- 经销商
- 支持
- 设计师服务
#zd-nav {
padding-left:0;
margin-left:0;
background-color:transparent;
}
#zd-nav .zd-sub-nav{
margin-top:5px;
**width:73px**;
**overflow:hidden;**
}
针对我尝试过的bug,有几种解决方案:
我知道ie6 overflow:visible bug(根据此处:),它将overflow:visible呈现为null和void。
通读:并尝试了一些技巧,试图使其真正成为溢出:可见,但没有任何效果
现在,我已经将菜单的下拉部分设置为overflow:hidden作为最后的解决方案,因为我无法让ie6让菜单以overflow:visible的方式运行
指出ie7或ie8中导航的任何问题也将非常感谢
建议?尝试以下任一方法:
word-wrap:break-word; /*use this in the #zd-nav .zd-sub-nav class*/
或者
你可以做身高:100%代码>也是
这是微软发明的一个布局问题。在此处找到信息:
希望这能有所帮助……尝试一下(假设您希望下拉列表[plus sub]也可以“浮动”在页面上任何其他妨碍您的元素上):
将包含子导航的li强制设置为相对位置不会改变页面上的位置。但是,它允许您在子元素上使用绝对位置,同时默认情况下将它们包含在父元素中,并将其从页面的“流”中释放出来(从而防止下推效应)。这对我来说很有效:
#zd-nav .zd-sub-nav li{
float:left;
clear:left;
position:relative;
z-index:20; /* or some other arbitrary biggish number */
}
浮动使li具有正确的宽度,相对位置和z索引使其显示在ul上方(即不受ul限制)。这应该有效
#zd-nav .zd-sub-nav{
margin-top:5px;
width: auto;
display: block;
overflow: visible
}
自动宽度用于采用每个导航项的大小,而无需为每个导航项指定固定宽度
希望这能有所帮助。我建议使用容器的相对位置,指定顶部、左侧和宽度。谢谢Jonathan,我只是想编辑代码标记。应该更好地使用预览版。伙计,IE6让我觉得自己像个N00b。天哪,还没来得及查看其他解决方案。不过,很快就会。换行:打断word;//没有效果。我还以为这是css3的功能呢?宽度:100%//更改了布局,但不是以任何好的方式,只是将菜单下放到了较低的一行。高度:100%;//和宽度一样。如果这真的是一个hasLayout问题,那么“zoom:1”黑客应该是一个干净的解决方法,但是。。。谷歌,zey do nathink,我试过了!真的,最好的事情是根本不要为IE6开发!9年前的浏览器充满了漏洞,微软不介意任何人使用它。是的,我希望我有这个选择。因为这很简单,我先尝试了一下,它解决了问题,所以谢谢。因为它是相对位置的,它仍然会导致页面上的下推。但如果它解决了问题,那就好了。
#zd-nav .zd-sub-nav li{
float:left;
clear:left;
position:relative;
z-index:20; /* or some other arbitrary biggish number */
}
#zd-nav .zd-sub-nav{
margin-top:5px;
width: auto;
display: block;
overflow: visible
}