Internet explorer 使用D3时,IE11不接受SVG高度和宽度

Internet explorer 使用D3时,IE11不接受SVG高度和宽度,internet-explorer,firefox,svg,d3.js,Internet Explorer,Firefox,Svg,D3.js,我使用以下方法来设置响应SVG outerHeight = 400; outerWidth = 600; var margin = {top: 20, right: 20, bottom: 30, left: 40}, width = outerWidth - margin.left - margin.right, height = outerHeight - margin.top - margin.bottom;

我使用以下方法来设置响应SVG

    outerHeight = 400;
    outerWidth = 600;

    var margin = {top: 20, right: 20, bottom: 30, left: 40},        
         width = outerWidth - margin.left - margin.right,
         height = outerHeight - margin.top - margin.bottom;

    var svg = d3.select("div#simulation-1")                 
        .append("svg")  
        .attr("preserveAspectRatio", "xMinYMin meet")
        .attr("viewBox", "0 0 "+outerWidth+" "+outerHeight)
        .attr("class","svg");
这在Chrome中非常有效。然而,在IE11和Firefox中,整个图表是按比例缩小的(轴和字体都很小),viewBox的值是

viewbox="0 0 1936 1056"
由于某些原因,它不接受指定的高度和高度。然而,它仍然是负责任的

包括小提琴:

有什么想法吗? 当做
Jean

IE有一个缺陷,如果不同时提供宽度和高度,它无法正确缩放SVG

要解决该问题,可以使用


我不是d3用户,因此我无法帮助您解决小标签问题。

我通过以下方式在IE中实现了它:

<svg id="yourid" width="100%" height="100%" viewBox="750 0 2500 2500">

不提供有时未知的宽度和高度,我们可以使用视口百分比作为:

style='width:100vw; height:100vh;'

试试这个。对我来说,它修复了IE和Chrome:

<svg version="1.1" width="1936px" height="1056px" viewBox="0 0 1936 1056" >


你能准备一把(小)小提琴来显示效果吗?给你,我可以看到问题,但我自己无法解决。然而,该公司提出的解决方案似乎奏效了。在可见的示例中,问题似乎是对外径、外径和轴的宽度和高度使用了globals。似乎Chrome对待globals的方式与其他浏览器不同,可能是因为某些名称空间问题
<svg version="1.1" width="1936px" height="1056px" viewBox="0 0 1936 1056" >