【发布时间】:2013-11-21 03:24:29
【问题描述】:
我在使用内联 SVG 时遇到了一个奇怪的问题。我正在<svg> 元素中创建路径,并使用top 或bottom CSS 属性和relative 定位将此SVG 叠加在前一个元素上,以在该部分上获得很酷的“剪切”效果。
这完全适用于 Chrome,但在 IE10 和 FF25 中,我在 SVG 的右侧和顶部获得了这个“透明”边框。我把“透明”放在引号中,因为据我所知它是透明的,因为它显示了它下面的亮绿色背景。这是一个屏幕截图,指向我看到的确切位置(屏幕截图来自 FF25):
我最初是从Codrops 那里得到分隔符建议的。
Test Page
在这个测试页面中,标题为“SVG Trouble Section”的部分就是有问题的部分。
有没有办法缓解这个问题,所以我的技术可以跨浏览器正常工作?或者有没有更好的方法来达到我想要的效果?谢谢!
更新 1: 通过更多的测试,我发现有时在 Firefox 中滚动时,顶部幻影“边框”消失并且不再返回。即使在重新加载页面之后。我不确定是什么导致它消失了,这不是问题的一部分,只是异常。
更新 2: 我通过删除元素进行了一些额外的测试,以查看可能触发此问题的原因,在删除 cmets、“SVG 故障部分”上方的几个部分和页脚之后,边框现在已移至底部分隔符。这是没有页脚的页面:http://ignitepixels.com/sandbox/svg/sample.html
更新 3: 我创建了一个小提琴,在其中复制了这个问题。这应该使故障排除更容易:http://jsfiddle.net/fmpeyton/NuneR/
由于您无法在 jsfiddle 中保存特定的面板尺寸,因此我附上了一张大致尺寸的屏幕截图,我能够使用 Firefox 25 重现此问题: 可能与更新 1 相关,该问题也会根据窗口宽度显示/消失。
【问题讨论】:
-
1+ 在 FF 中测试.. 跨浏览器的不一致太多了。 ಠ_ಠ
-
感谢您的测试!我很高兴它发生在其他用户的浏览器上,而不仅仅是我的。
-
当我缩放(ctrl + 滚动)时,“边框”的 with 会发生变化,所以我猜这是像素舍入错误。一种似乎可行的解决方法是将描边宽度设置为 5 并将描边设置为白色