SVG图像精灵在IE9和10中不起作用

时间:2014-07-01 19:39:29

标签: css svg sprite retina

这不仅仅是IE 9中的一个问题。 10,还有旧版本的Safari,如5.1.7

我想使用SVG图像精灵,它在所有最新版本的Chrome,Firefox和IE上看起来都很好,但是在IE 9& 10,它使图像看起来被压扁而不能以正确的尺寸显示。

请在IE 9,IE 10或Safari 5.1.7中查看此JS小提琴:http://jsfiddle.net/NGSM3/3/以查看问题。我想继续使用图像精灵,但想要将它们更新为SVG图像精灵。

我的HTML:

<ul class="svg-nav">
    <li>
        <a><span class="item1"></span></a>
    </li>
    <li class="selected">
        <a><span class="item2"></span></a>
    </li>
    <li>
        <a><span class="item3"></span></a>
    </li>
    <li>
        <a><span class="item4"></span></a>
    </li>
</ul>

我的CSS:

*{
    margin: 0;
    padding: 0;
}

.svg-nav{
    background: #fff;
    display: block;
    width: 415px;    
    list-style: none;
}
    .svg-nav li{
        float: left;
    }
        .svg-nav a{
            border-right: 1px solid #eee; 
            cursor: pointer; 
            display: inline-block;
            padding: 9px 35px 6px 35px;
        }
        .svg-nav li:last-child a{
            border-right: none; 
        }
        .svg-nav li a:hover, .svg-nav .selected a{background: #ddd;}
            .svg-nav li a span{
                background-image: url("http://www.endpop.co/svg-test.svg");
    background-repeat: no-repeat;
    cursor: pointer;
    display: inline-block;
    height: 33px;
    width: 33px; 
    background-size: 133px 66px; 
}
        .item1{ background-position: 0 0; }
        .item2{ background-position: -33px 0; }
        .item3{ background-position: -66px 0; }
        .item4{ background-position: -99px 0; }

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我在此相关问题Background-size with SVG squished in IE9-10中作为答案建议的解决方案是将widthheight属性添加到SVG文件中的svg元素。