是否可以在<svg>
元素上设置overflow: visible
?
这个在jsfiddle上的简单示例在我可用的所有浏览器中都会出现问题(某些版本的Chrome和Firefox),它们就像overflow: hidden
一样。
有人能告诉我,是SVG支持还不够成熟以至于无法做出这样简单的事情吗?还是我的代码有问题?
我的实际使用中overflow: visible
是用在图表的range-axis上,其中-0
刻度的底部一半被剪切掉了。
是否可以在<svg>
元素上设置overflow: visible
?
这个在jsfiddle上的简单示例在我可用的所有浏览器中都会出现问题(某些版本的Chrome和Firefox),它们就像overflow: hidden
一样。
有人能告诉我,是SVG支持还不够成熟以至于无法做出这样简单的事情吗?还是我的代码有问题?
我的实际使用中overflow: visible
是用在图表的range-axis上,其中-0
刻度的底部一半被剪切掉了。
我猜您指的是HTML中的内联overflow: visible
,但就我所知,其他浏览器目前不支持。
一个可能的解决方法(实际上在我看来应该首先这样做)是指定一个viewBox
,该视口定义了svg内部的坐标系统。然后你在这个坐标系内绘制图形。如果东西被剪切了(或者换句话说,如果元素在viewBox
区域之外),那么只需相应地增加viewBox
的宽度和/或高度。
如果您想知道特定viewBox
的好默认值,请尝试[0 0 width height]
(其中width和height是您目前拥有的svg的大小),然后将高度增加到底部刻度完全可见。
2014更新:
跨浏览器仍然有点不一致,但正在朝着这个方向前进。Firefox和IE支持在内联SVG元素上使用overflow:visible
,Blink(Opera 23 / Chrome 36)也为其添加了支持,有关详细信息请参见bugreport。
overflow:visible
不支持的问题。 - Erik Dahlströmoverflow:hidden
以便SVG不会在其容器外可见。我们可以这样做吗? - lmat - Reinstate Monicaoverflow: visible
box-shadow : 0px -0px 10000px transparent /*trick for chrome*/
将一个巨大的box-shadow添加到SVG中,或者在一个带有巨大阴影的DIV中添加SVG可以解决它。在Chrome中,我注意到溢出被剪切到了box-shadow的限制。