IE11 浏览器形状溢出 SVG 元素

Posted

技术标签:

【中文标题】IE11 浏览器形状溢出 SVG 元素【英文标题】:IE11 browser shape overflows SVG element 【发布时间】:2019-09-02 02:42:37 【问题描述】:

我正在处理 SVG 并尝试创建半圆,但 IE11 浏览器会创建完整的圆。

我的代码是这样的:

<svg viewBox="0 0 80 40" class="gauge">
  <circle 
    cx="40"
    cy="40"
    r="37"
    fill="transparent"
    stroke="#d2d3d4"
    stroke-></circle>
</svg>

如何在 IE11 中渲染半圆? 它在其他浏览器上运行良好。请找到下图以获取更多参考。

在 IE11 上:

在 Chrome 上:

【问题讨论】:

overflow="hidden" 在 元素上? 【参考方案1】:

快速解决方法是在 svg 上添加 overflow:hidden;,如下所示:

svg 
  overflow: hidden;
<svg viewBox="0 0 80 40" class="gauge">
  <circle 
    cx="40" 
    cy="40" 
    r="37" 
    fill="transparent" 
    stroke="#d2d3d4" 
    stroke-></circle>
</svg>

根据您的用例,“更清洁”的解决方案是使用路径和 arc command 构建半圆:

<svg viewBox="0 0 80 40" class="gauge">
  <path d="M3 40 A37 37 0 0 1 77 40"
    fill="transparent" 
    stroke="#d2d3d4" 
    stroke- />
</svg>

这样你就可以确定没有任何东西会溢出 svg 元素。

【讨论】:

以上是关于IE11 浏览器形状溢出 SVG 元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Edge 和 IE 中通过单击 SVG 形状来实现动画

CSS 翻译在 SVG g 上的 IE11 中不起作用

IE10 和 11 中缩放 SVG 的奇怪边距

IE 11 Flexbox子溢出容器[重复]

IE11中的Flex项目溢出容器

IE11下javascript报堆栈溢出问题的解决