使用#id.class之类的规则时,css background不会出现在ie 6中

fei*_*fei 1 css background internet-explorer-6

我正在制作一个启动图像div,用不同的css类改变背景,这里是我定义的规则:

#splash {
    height: 130px;
}

#splash.homepage { 
    background: #F7EECF url("images/splash_home.png") no-repeat 0 0 scroll; 
}
#splash.projectspage { 
    background: #F7EECF url("images/splash_projects.png") no-repeat 0 0 scroll; 
}
Run Code Online (Sandbox Code Playgroud)

这在firefox和chrome中运行良好,但背景以某种方式不会显示在ie中.奇怪的是,它适用于主页类,但不适用于projectspage类.因此,似乎6不同地解释这些几乎相同的规则.我试过清除缓存,没有帮助.我对css很新,即6个黑客,所以我在这里缺少任何东西吗?

另外一个与此有点相关的问题,似乎它在firefox中没有效果,如果在课前有空格,比如"#splash .homepage",但不知怎的,我看到其他人的网站使用带有空格的css.可能是什么问题呢?

更新: 我试图颠倒#splash.homepage和#splash.projectspage的顺序,然后现在projectspage工作但不是主页.似乎使用了#splash后立即出现的任何内容.

这里有一些相关的CSS和htmls:

#splash {
    height: 130px;
}

#splash.projectspage { background: #F7EECF url('images/splash_projects.png') no-repeat 0 0 scroll; }
#splash.homepage { background: #F7EECF url('images/splash_home.png') no-repeat 0 0 scroll; }
#splashtext {
    padding: 53px;
    height: 40px;
    width: 450px;
}

#splashtext h2 {
    color: #FFFFFF;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: normal;
    font-style: italic;
}

#splashtext p {
    color: #FFFFAA;
    font-family: Calibri, Arial, san-serif;
    font-size: 14px;
    font-weight: normal;
    margin-top: 10px;
    font-style: italic;
}


<!-- splash, this one does not show -->
<div id="splash" class="homepage">
    <div id="splashtext">
        <h2>some header</h2>
        <p>some description</p>
    </div>
</div>

<!-- splash, this one shows -->
<div id="splash" class="projectspage">
    <div id="splashtext">
        <h2>some other header</h2>
        <p>some other description</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

kmi*_*iro 5

IE6不支持多个组合选择器来选择元素(#id.class或.class.class等).IE6只会识别您链中的最后一个类/ ID.

细节和例子

但是,在这种情况下,只要您在页面上的一个元素上只有.homepage和.projectspage,背景图像就应该显示在正确的元素上.

我注意到你可能正在使用.homepage和.projectspage来区分这些不同页面上的两个PAGES和相同的ELEMENT.一个好的做法是将类放在<body>元素上,以便您可以使用它来区分每个页面及其后代.

<body class="homepage">
    <div id="splash">
Run Code Online (Sandbox Code Playgroud)

然后你的CSS将是:

body.homepage div#splash { blah }

body.projectspage div#splash { blah }
Run Code Online (Sandbox Code Playgroud)

附加好处:您现在可以基于每页定位任何元素,而不仅仅是您添加".homepage"或".projectspage"的元素.