如何修复IE7中的这个css错误?

时间:2011-11-09 17:12:48

标签: css internet-explorer position appearance

我最近在我的网站上添加了一些css,它在所有浏览器中运行得非常好,除了IE 7及更低版本,我不确定为什么我不是css guru(还有))并且我的css可能错了,但是你可以解释是什么让IE7和更低版本弄乱了网站的外观吗?如果你在IE8或任何其他浏览器和IE7中进行比较,你会看到我在说什么。你能指出问题所在吗?

网页:http://inelmo.com/inelmo

侧边栏的CSS:(我只包含了这个,因为一旦我添加了这部分代码就会出现问题)

#sidebar {
    width: 440px;
    float: right;
}

/* Navigation Menu */
#navigationMenu {
    width: 50px;
    position: absolute;
    z-index: 99;
}

#navigationMenu li {
    list-style: none;
    height: 39px;
    padding: 2px;
    width: 40px;
}

#navigationMenu span {
    width: 0;
    left: 38px;
    padding: 0;
    position: absolute;
    overflow: hidden;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.6px;
    white-space: nowrap;
    line-height: 39px;

    -webkit-transition: 0.25s;
    -moz-transition: 0.25s;
    -o-transition: 0.25s;
    -ms-transition: 0.25s;
    transition: 0.25s;
}

#navigationMenu a {
    background: url("../images/nav_bg.png") no-repeat;
    height: 39px;
    width: 38px;
    display: block;
    position: relative;
    text-decoration: none;
}

#navigationMenu a:hover span {
    width: auto;
    padding: 0 20px;
    overflow: visible;
}

#navigationMenu a:hover {
    text-decoration: none;
}

/* Home Button */
#navigationMenu .home {
    background-position: 0 0;
}

#navigationMenu .home:hover {
    background-position: 0 -39px;
}

#navigationMenu .home span {
    background-color: #7da315;
    color: #3d4f0c;
    text-shadow: 1px 1px 0 #99bf31;
}

/* Categories Button */
#navigationMenu .categories {
    background-position: -38px 0;
}

#navigationMenu .categories:hover {
    background-position: -38px -39px;
}

#navigationMenu .categories span {
    background-color: #1e8bb4;
    color: #223a44;
    text-shadow: 1px 1px 0 #44a8d0;
}

/* Top Button */
#navigationMenu .top {
    background-position: -76px 0;
}

#navigationMenu .top:hover {
    background-position: -76px -39px;
}

#navigationMenu .top span {
    background-color: #c86c1f;
    color: #5a3517;
    text-shadow: 1px 1px 0 #d28344;
}

/* AntiTop Button */
#navigationMenu .antiTop {
    background-position: -114px 0;
}

#navigationMenu .antiTop:hover {
    background-position: -114px -39px;
}

#navigationMenu .antiTop span {
    background-color: #af1e83;
    color: #460f35;
    text-shadow: 1px 1px 0 #d244a6;
}

/* Logo styling */
#logo {
    width: 390px;
    margin: 0 0 0 50px;
    position: absolute;
    z-index: -1;
}

/******/
#sideWrapper {
    width: 437px;
    background: url("../images/sidebar_strip.png") repeat-x;
    padding: 15px 0 0 3px;
    margin: 190px 0 0 0;
}

3 个答案:

答案 0 :(得分:5)

使用float:xxx时,您还应附加display: inline以修复较旧的IE行为。

在IE6中:hover仅适用于<a>,修正:http://peterned.home.xs4all.nl/csshover.html

您似乎在没有实际设置position: absolute; / top /等的情况下使用left

使用http://www.twinhelix.com/css/iepngfix/之类的'pngfix'来使用透明的png。

使用谷歌和http://haslayout.net/之类的网站来寻找乐趣,即错误。

答案 1 :(得分:3)

使用CSS重置

this code添加到CSS的顶部

答案 2 :(得分:1)

如果没有代码的示例,我建议最开始的人就是逐行注释掉上面的CSS,直到找到破坏布局的确切CSS。我使用的另一个技巧是为所有东西添加背景颜色,这样你就可以直观地看到事情的发展方向。