Javascript 声明SVG的正确方法是什么?

Javascript 声明SVG的正确方法是什么?,javascript,css,svg,Javascript,Css,Svg,我刚刚在网上看到了这个简单的svg HTML如下所示: <div class="burger-ring is-open"> <svg class="svg-ring"> <path class="path" fill="none" stroke="#fff" stroke-miterlimit="10" stroke-width="4" d="M 34 2 C 16.3 2 2 16.3 2 34

我刚刚在网上看到了这个简单的svg

HTML如下所示:

  <div class="burger-ring is-open">
              <svg class="svg-ring">
                  <path class="path" fill="none" stroke="#fff" stroke-miterlimit="10" stroke-width="4" d="M 34 2 C 16.3 2 2 16.3 2 34 s 14.3 32 32 32 s 32 -14.3 32 -32 S 51.7 2 34 2" />
              </svg>
  </div> 

HTML没有名称空间,XML有名称空间

  • 如果将SVG嵌入作为text/HTML的HTML文件中,则不需要xmlns属性

  • 如果将SVG嵌入作为XML的文件中,例如application/xhtml+XML,则需要xmlns属性


关于您的第二个问题:edge之前的IE版本不支持SVG的CSS动画。

我看到过这样的情况,如果您忽略
xmlns=,浏览器可能无法正确呈现SVGhttp://www.w3.org/2000/svg“>
等等…@Paulie\u哦,谢谢你!
.path {
  stroke-dasharray: 240;
  stroke-dashoffset: 240;
  stroke-linejoin: round;
}

@-webkit-keyframes dash-in {
  0% {
    stroke-dashoffset: 240;
  }
  40% {
    stroke-dashoffset: 240;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes dash-in {
  0% {
    stroke-dashoffset: 240;
  }
  40% {
    stroke-dashoffset: 240;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@-webkit-keyframes dash-out {
  0% {
    stroke-dashoffset: 0;
  }
  40% {
    stroke-dashoffset: 240;
  }
  100% {
    stroke-dashoffset: 240;
  }
}
@keyframes dash-out {
  0% {
    stroke-dashoffset: 0;
  }
  40% {
    stroke-dashoffset: 240;
  }
  100% {
    stroke-dashoffset: 240;
  }
}