2014-04-22 94 views
0

我想在固定大小的块内显示svg图像。我想在图块中显示未失真且尽可能大的图像。我的问题是图像是由用户提供的,所以我不知道它的尺寸。有没有办法只用CSS来做到这一点?缩放未知大小的SVG

+0

为什么不检测其尺寸?有一种通过浏览器SVG实现获取任何SVG元素的bBox的方法http://www.w3.org/TR/SVG/types.html#__svg__SVGLocatable__getBBox –

+0

@NicholasKyriakides:我可以这样做,但我想知道是否有一种方法可以在没有Javascript的情况下执行。 – Eduardo

+0

这与您要查找的内容有关吗? http://stackoverflow.com/questions/8919076/how-to-make-a-svg-element-expand-or-contract-to-its-parent-container –

回答

2

不,你不能只使用CSS。告诉浏览器如何缩放SVG以填充其父容器的属性在SVG中定义。有特别四个属性控制缩放:

  1. width
  2. height
  3. viewBox
  4. preserveAspectRatio

前两种可以用CSS来覆盖,但近两年不能。如果您无法控制SVG,则无法保证它具有viewBox或preserveAspectRatio。

但是,您可以使用Javascript来操作viewBox和preserveAspectRatio属性。