【问题标题】:SVG won't stay inside <div> in FirefoxSVG 不会留在 Firefox 中的 <div> 中
【发布时间】:2013-12-18 16:04:30
【问题描述】:

这是一个很好的:jsFiddle

body {
    background-color: black;
}
#divResearch {
    position: fixed;
    top: calc(((100% - 70px) * .05) + 40px);
    left: 3%;
    width: 94%;
    height: calc((100% - 70px) * .75);
    background-color: darkgreen;
}

如果您使用 Chrome 31(甚至 IE 11 - 你能相信吗?!)查看上面的小提琴,当您 移动结果窗口调整大小手柄周围。 SVG 被告知要保持其纵横比;根据您调整窗口大小的方式,您可以在宽度或高度上看到多余的绿色。

这在 FF 26 中不起作用

在 FF 26 中,当您调整宽度时,SVG 高度会不断变大,并且永远不会受到 div 的限制。这是我的FF错误还是糟糕的CSS3?此代码通过了 W3C 验证 (fwiw)。

【问题讨论】:

  • 我无法在 Firefox 26.0 上重现您的问题
  • @user2314737 我可以。随着窗口变窄,svg 变得比 div 小,随着窗口变宽,svg 变大并离开 div。
  • @Alexander Kosubek 正确,在发布问题之前,我已经在 2 台不同的机器上进行了测试。

标签: css firefox svg


【解决方案1】:

width="100%"height="100%" 添加到 svg 标记会有所帮助。

关于 w3c.org 文档,如果未设置,则应为 100%: "如果没有指定属性,效果就像指定了 '100%' 的值。"

看来FF26的svg元素的默认值有问题

【讨论】:

  • 您的答案适用于所有浏览器。由于希望允许 SVG 缩放到 div,因此在 SVG 元素本身上声明宽度和高度似乎是不正确的。百分比方法没有伤害,但正如你所逃避的那样,它不应该是必要的。 FF 错误。这似乎越来越有规律地发生:-(
  • 这个答案具有误导性,因为 Firefox 的行为实际上是正确的,每个 w3.org/TR/SVG11/coords.html#ViewportSpace 默认宽度属性确实是 100%,确定视口的宽度。
  • @GeekStocks 这里没有 FF 错误。
  • @Robert - 完全不同意。答案表明 FF 存在默认问题,这在小提琴中得到了很好的证明。你是说 Chrome 和 IE 是错误的,因为它们显示正确吗?大声笑修辞。 FF 没有实现正确的默认值; Chrome 和 IE 可以。
  • 请阅读我提供的参考资料。是的,Chrome 和 IE 有问题。 Chrome 开发人员知道这一点并正在努力解决此问题,IE 开发人员不谈论 IE 的未来版本,所以我不知道何时或是否会在 IE 中修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 2020-09-28
  • 2021-06-11
  • 2013-10-16
  • 1970-01-01
  • 2017-04-15
相关资源
最近更新 更多