是否可以在overflow: visible
元素上设置<svg>
?
This simple example on jsfiddle在我有权访问的每个浏览器(某些版本的Chrome和Firefox)中断,因为它们的行为类似于overflow: hidden
。
有人可以告诉我svg支持是否仍然太不成熟而无法做到这么简单的事情,或者我的代码中是否做错了什么?
overflow: visible
的实际用法是图表上的范围轴,其中-0
刻度线的下半部分被截断。
答案 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中,我注意到溢出被剪切到了盒子阴影限制。