【发布时间】:2013-05-10 13:25:13
【问题描述】:
我在 Firefox 中使用带有 .svg 文件链接的剪辑路径没有任何问题,但 Safari 似乎拒绝使用它们。
如果你在 Firefox 中加载我的 WIP 页面 http://www.omakadesign.com,你会在菜单底部看到一个蝴蝶图案,但如果你在 Safari 中加载它,菜单完全是矩形的。
相关行出现在 main.css (221) 中,如下所示:
clip-path: url("../img/menu-news.svg#news-clip");
关于 clip-path 和 Safari 的信息似乎很少,在这个网站上也没有太多关于它的问题(相信我,我已经看过了)。但是话又说回来,即使在 Firefox 中,我什至无法使用 clip-path 获得最基本的内联 svg 示例,所以也许我在这个主题上缺少一些基本的东西?
(另外,虽然这是另一个主题,但为什么这些菜单在底部同时有填充和边距对我来说是个谜,因为我使用 min-width 将它们归零......)
更新:
我做了一个测试并创建了一个带有掩码标签的 .svg,并将上面出现的剪辑路径行替换为一个 css 掩码(如果你想用 Firefox 样式编辑器尝试它,仍然是 221),令人惊讶的是仍然可以在 Firefox 和 Safari 中使用,但仍会跳过它:
mask: url("../img/menu-news-mask.svg#news-mask");
(最终更新:找到了解决方案,但我不允许再发布 5 个小时...结果,您必须使用非常、非常具体的 SVG 并为 Safari 使用 -webkit-mask。)
【问题讨论】:
-
在您的 safary 版本中尝试一些其他示例,例如 svgbasics.com/clipping.html 或 labs.sawyerhollenshead.com/lab/svg-clippath 以比较结果
-
在这里查看浏览器对 SVG 的支持:caniuse.com/#search=svg 这可能有助于解释您的情况。
-
两个示例都有效,但我尝试自己重新创建第二个示例,并将我自己的 SVG 文件中的数据粘贴到该示例中,但我无法让它在 Firefox 或 Safari 中显示,所以这就是让我觉得我缺少一些基本的东西的原因......(顺便说一句,这些例子都没有使用我真的非常想保留的外部引用。)
-
另外,我之前查看了 caniuse.com,但在那儿找不到剪辑路径。