让这个CSS在IE6中工作

时间:2010-04-16 21:34:12

标签: css

在此页面上工作:http://www.karlsenner.dreamhosters.com/about.php并且在IE6中导航时遇到问题。它验证为XHTML 1.0 Transitional。适用于FF,IE 8,Chrome和Windows Safari。在IE6和Opera 10中,下拉菜单显得过高。

我尝试添加http://code.google.com/p/ie7-js/的不同版本,但它没有解决IE中的问题。

CSS看起来像这样:

#wrapper {
    position: relative;
    display: block;
    background-color: inherit;
    margin: 0px auto;
    padding: 0;
    width: 900px;
    min-height: 900px;
}

#nav {} 

.navImage {
    position:relative;
    display:inline;
    height:102px;   /* added in hopes of helping IE position but no dice */
}

.subMenu {
    position:absolute;
    z-index:10;
    background-color:#FFF;
    top: 14px;
    left:0;
}

.subMenu a:link, .subMenu a:visited, .subMenu a:active{
    display:block;
    width:90%;
    padding:6px;
    margin:0;
    color:#3CF;
    font-family:Tahoma, Geneva, sans-serif;
    font-size:14px;
    text-decoration:none;
    font-weight:bold;
}

.subMenu a:hover{
    display:block;
    width:90%;
    padding:6px;
    margin:0;
    color:#3CF;
    background-color:#CCC;
    font-family:Tahoma, Geneva, sans-serif;
    font-size:14px;
    text-decoration:none;
    font-weight:bold;
}

jQuery翻转:

$('#navcompany').hover(function () {
    $('#companyMenu').css('display', 'block'); 
    $('#companyImg').attr('src','g/nav/company_over.gif');
}, function () {
    $('#companyMenu').css('display', 'none');
    $('#companyImg').attr('src','g/nav/company.gif');
});

其中一个细胞。由于菜单来自PHP并且IE不尊重宽度,我只使用PHP来获取导航图像宽度并将其写入样式中。解决了宽度问题,因为IE的行为应该从包装器继承它们的宽度。这可能是一个线索,为什么它们不会出现在导航图像下方,但我无法对其进行排序。

<div id="navcompany" class="navImage" style="width:128px">
  <a href="about.php">
    <img src="g/nav/company_over.gif" name="companyImg" width="128" height="102" border="0" id="companyImg"  alt="company" />
  </a>
  <div id="companyMenu" class="subMenu" style="display:none; width:128px">
    <a href="about.php">About us</a>
    <a href="location.php">Our location</a>
  </div>
</div>

非常感谢任何建议!

JG

1 个答案:

答案 0 :(得分:4)

.navImage {
position:relative;
display:inline;
height:102px;   /* added in hopes of helping IE position but no dice */
}

你正在使它成为内联DIV,但它实际上不是内联DIV。它被更像display: block;

使用

在IE6中.navImage被渲染成一个块,这就是你看到差异的原因。

您应该.navImage display: block;并使用float: left;

还要记得清除浮子。

然后,您的top:14px将更改为top: 102px;