Html CSS选择器:在IE8中不处理子元素单击时处于活动状态

Html CSS选择器:在IE8中不处理子元素单击时处于活动状态,html,css,internet-explorer-8,css-selectors,Html,Css,Internet Explorer 8,Css Selectors,我有以下HTML结构: <div id="ctr__Wrapper" class="wrapper"> <div id="ctr" class="control clickable"> <img src="logo.png"> </div> </div> 当我点击元素“ctr”时,我看到背景颜色发生了变化,但当我点击图像本身时,它没有发生变化。这在Firefox中运行良好,但在IE8中不起作用。我可以用

我有以下HTML结构:

<div id="ctr__Wrapper" class="wrapper">
    <div id="ctr" class="control clickable">
        <img src="logo.png">
    </div>
</div>
当我点击元素“ctr”时,我看到背景颜色发生了变化,但当我点击图像本身时,它没有发生变化。这在Firefox中运行良好,但在IE8中不起作用。我可以用CSS解决这个问题吗

工作示例如下所示:
您可以使用背景图像而不是真实图像

html:


因为我知道这一点,但项目的具体性质需要这种结构+1无论如何,如果我能应用它,这将解决问题……在没有更好答案的情况下,我会接受这个。我想在CSS中没有办法在保留结构的同时做到这一点。我想(但我现在没有时间测试),在使用不可见(透明)图像时,可以使用旧结构,其周围的div的z-index:0和z-index:veryhigh。也可以使用1x1像素大小的不可见图像。它在IE8中不起作用,它的行为与原始图像相同。在div-click上的背景更改,但在img-click上没有。我的坏人,没有添加href属性。我在这里更新了它:你有没有试着点击图像,而不是背景div/a?第一句话显然是错误的,
:active
开始处理IE8中的非锚元素。这里的错误是完全不同的……我们都错了;ie8在与:active结合使用时有一个带有负z索引元素的bug
.control
{
    border: 1px solid #000;
    background-color: #666;
    padding: 20px;
}

.control:active
{
    background-color: #bbb;
}
<div id="ctr__Wrapper" class="wrapper">
    <div id="ctr" class="control clickable">
    </div>
</div>
.control
{
    border: 1px solid #000;
    background-color: #666;
    height: 40+height-of-logopx;
    background-image:url(logo.png); background-repeat:no-repeat;
    background-position:20px 20px;
}

.control:active
{
    background-color: #bbb;
}