SVG中的字体图标在IE 11中不起作用

时间:2016-08-03 13:10:49

标签: javascript d3.js fonts internet-explorer-11

SVG外部元素中的字体图标在IE11中不起作用。虽然它适用于Chrome和Firefox。这是我的代码

var svg = d3.select('#item svg');

svg.append('circle')
    .attr('r', 50)
    .attr('cx',100)
    .attr('cy', 100)
    .style('fill', 'lightgray');

svg.append('svg:foreignObject')
            .attr('x', 100)
            .attr('y', 100)
            .append('xhtml:span')
            .attr('class', ' glyphicon glyphicon-glass')
            .style('fill', 'white'); 

如果您在IE 11中打开this fiddler,则圈子上将看不到任何图标。但是,在IE11中,html图标(在svg之外)工作正常。

提前致谢。

1 个答案:

答案 0 :(得分:3)

为什么不使用<text>元素?

https://jsfiddle.net/vyz3dgff/2/

var svg = d3.select('#item svg');
svg.append('circle')
    .attr('r', 50)
    .attr('cx',100)
    .attr('cy', 100)
    .style('fill', 'lightgray');

svg.append('svg:text')
        .attr('x', 100)
        .attr('y', 100)
        .attr('class', 'glyphicon')    // note no glyph selection
        .attr('text-anchor', 'middle') // horizontal alignment
        .attr('dy', '0.5em')           // vertical alignment
        .style('font-size', '48px')
        .style('fill', 'white')
        .text("\ue001");               // glyph as defined in the font