有问题的网站:http: //atlanticsig.creativecurvedev2.ca/
一点背景... 这是我在 MODx 中构建的客户端开发站点,使用 Wayfinder 扩展作为菜单,Ultimate Dropdown 作为子菜单。我正在使用 CSS 渐变来为菜单生成漂亮的背景颜色。
我的问题是,在 IE8 中,当我合并“过滤器”渐变背景颜色时,标题导航的下拉菜单不显示。只有 IE8 浏览器有这个问题;甚至 IE7 也能正常工作。从技术上讲,下拉菜单在那里,因为光标可以点击子菜单链接,但浏览器拒绝显示它们。
我已经通过为 IE8 使用重复的背景图像解决了这个问题,但我真的不想走这条路;我认为肯定应该有一个 CSS 解决方案,这就是我发布这个的原因;我的好奇心被激起了,我想看看真正的问题是什么。
我能够将问题追溯到这行代码:
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-8 */
一旦我从以下代码块中删除了这一行,下拉菜单在 IE8 中就可以正常工作,但是渐变会消失:
#header_menu {
background: -moz-linear-gradient(top, #003764 0%, #3b6b89 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#003764), color-stop(100%,#3b6b89)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #003764 0%,#3b6b89 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #003764 0%,#3b6b89 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #003764 0%,#3b6b89 100%); /* IE10+ */
background: linear-gradient(to bottom, #003764 0%,#3b6b89 100%); /* W3C */
background-color: #003764; /* Old browsers */
height: 38px;
width: auto;
}
我在 HTML 和 CSS 中尝试了许多修复,包括渐变的各种排列、将渐变应用于不同的元素、将各种高度/宽度/位置值应用于我的容器和菜单、使用 z-index 值、添加额外的块, ETC。
最后,它似乎总是回到那个“过滤器”行(我什至尝试过-ms-filter-)。
如果您想要任何其他代码片段,请告诉我。这是一个非常有趣的问题,我真的很想解决这个问题。