【问题标题】:SVG viewBox behaviour in IEIE 中的 SVG 视图框行为
【发布时间】:2016-04-16 17:32:58
【问题描述】:

我有这个 SVG,通过使用 viewBox 属性,我可以在其中移动并查看它的每个部分。

您在上图中看到的黄色框是一个恒定的 400x400 SVG,它的宽度和高度没有变化。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="17900 -4100 1050 1050" preserveAspectRatio="none" width="400" height="400">

当我垂直滚动时,Eveything 在框内移动,但 Internet Explorer(11) 的行为有所不同。

像这样:

尽管 SVG 高度和重量是 400x400,但 IE 并不关心并移出 SVG 容器! Internet Explorer 如何在 SVG 元素之外绘图?我该如何解决?

附:在这两个示例中,只有 viewBox 属性发生了变化。

编辑:https://jsfiddle.net/omidh/unjq6h0c/

Chrome 和 Firefox 在 SVG 元素内绘制所有形状,但 Internet Explorer 不会。

【问题讨论】:

  • viewBox怎么改?
  • @RobertLongson 通过在浏览器的元素检查器中简单地更改它,我添加了一个 jsfiddle,请尝试使用 IE 和其他浏览器来看看我在说什么。比如将viewBox="19250 2100 800 800"改为viewBox="19000 2100 800 800",即使不修改默认的viewBox属性,IE也可能将其绘制到元素外
  • 我想知道 IE 元素检查器是否工作正常(它可能主要设计用于处理 html)。在不使用它的情况下进行测试可能会给您带来不同的结果。
  • @RobertLongson 我尝试使用 javascript 来更改 viewBox.baseVal,还是一样...。你在 Internet Explorer 中打开了我的 jsfiddle 吗?
  • 你应该更新你的测试用例来显示这个。

标签: javascript css internet-explorer svg internet-explorer-11


【解决方案1】:

它应该不是必需的,但您可以将 overflow: hidden 添加到您的 SVG。

svg {
  background-color: khaki; /* rgba(216, 210, 210, 0.06); */
  overflow: hidden;
}

【讨论】:

  • 我认为 SVG 2 建议溢出的默认值应该更改,因此最好在外部 &lt;svg&gt; 元素上按照您想要的方式定义它。
猜你喜欢
  • 2011-07-19
  • 2020-11-19
  • 2017-12-13
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
相关资源
最近更新 更多