溢出:在SVG上可见

时间:2012-09-08 00:01:52

标签: css svg webkit overflow

是否可以在overflow: visible元素上设置<svg>

This simple example on jsfiddle在我有权访问的每个浏览器(某些版本的Chrome和Firefox)中断,因为它们的行为类似于overflow: hidden

有人可以告诉我svg支持是否仍然太不成熟而无法做到这么简单的事情,或者我的代码中是否做错了什么?

overflow: visible的实际用法是图表上的范围轴,其中-0刻度线的下半部分被截断。

2 个答案:

答案 0 :(得分:26)

我认为你的意思是内联&lt; svg&gt; HTML中的元素,如果是这样,那么这只是一个实现限制。 IE9 +允许overflow:visible on&lt; svg&gt;元素,但到目前为止其他浏览器都没有AFAIK。

一种可能的解决方法(实际上它应该首先在IMHO中完成)是指定一个viewBox来定义svg内部的坐标系。然后你在这个坐标系中绘制东西。如果事物被剪裁(换句话说,如果元素在viewBox区域之外),那么只需相应地增加viewBox宽度和/或高度。

如果您想知道特定viewBox的默认值,请尝试[0 0 width height](宽度和高度是您目前拥有的svg的大小),然后只需增加高度,直到底部刻度完全可见。

2014年更新 它在浏览器中仍然有点不一致,但它已经到了那里。 Firefox和IE在内联svg元素上支持overflow:visible,而Blink(Opera 23 / Chrome 36)也增加了对它的支持,详见bugreport

答案 1 :(得分:1)

overflow: visible  
box-shadow : 0px -0px 10000px transparent /*trick for chrome*/

向SVG添加一个巨大的盒子阴影,或者在具有巨大阴影的DIV中添加SVG来解决它。在Chrome中,我注意到溢出被剪切到了盒子阴影限制。