在Internet Explorer中使用SVG图像时,光标指针不显示

时间:2013-12-13 09:42:22

标签: html css internet-explorer svg

使用此html:

<a href="http://www.wikipedia.com">
    <object data="http://upload.wikimedia.org/wikipedia/en/4/4a/Commons-logo.svg" type="image/svg+xml">
        <img src="http://herdeirodocaos.files.wordpress.com/2007/11/wikipedia-logo.jpg" alt="Logo" />
    </object>
</a>

结合这个css:

a {
    display: block;
}
object, img {
    width: 200px;
    height: 200px;
}

object:hover {
    cursor: pointer;
}

JsFiddle

当鼠标悬停在Internet Explorer

的图像上时,光标不会更改为指针(手)

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试将此添加到您的CSS:

object{
    pointer-events: none;
}

答案 1 :(得分:0)

TL; DR:这是因为IE8无法解释对象并将图像置于其位置。并且您以相反的方式描述了您的错误: - )< / p>

我确信这种行为与你所描述的完全相反 - 在IE 8中只有光标集ti pointer,在我的其他浏览器中(FF,Chrome,IE 10 ...)光标是default,即箭头。

我的解释是IE8无法解释SVG(IE无法解释版本9之前的SVG)并将图像显示为链接的一部分 - 并为其提供适当的光标pointer,你的小提琴在CSS中冗余设置。但是,其他浏览器可以解释对象并正确显示它 - 并且不会给它你想要的光标,因为元素类型是对象(尝试将flash电影,例如YouTube视频放入{{1} }元素,看看会发生什么)。

最后一个细节:不需要使用a选择器,当元素时,光标显示在元素。是的,在元素上。

修改: Erik的评论非常好(粘贴在这里只是为了更快地参考):

您需要将光标规则放在svg中,而不是为了工作,因为这是事件将用于标记的位置。事件不会“冒泡”到父文档。如果您使用引用svg的引用也会有效,如下所示:jsfiddle.net/Mw8JX