当前位置: 首页 > 面试题库 >

为什么filter(shadow)导致我的SVG在Safari中消失?

孙俊彦
2023-03-14
问题内容

我正在使用D3.js开发应用程序。我被困了一段时间,最近又回来了。今天,我发现,尽管过去运行良好,但该应用程序中的SVG地图不再显示在移动Safari(iOS9.3.1)或桌面Safari(v9.1(11601.5.17.1))上。

我提取了SVG和单个样式规则,并将它们放在CodePen上以说明发生了什么。在Chrome中,这支笔看起来不错。在Safari中,它将完全空白。

如果您在Safari中检查DOM,则会发现路径在那里,并且它们是正确的形状。他们似乎是看不见的。取消检查器中的样式规则会导致整个地图神奇地出现(很明显没有阴影)

样式规则非常简单:

svg {
    -webkit-filter: drop-shadow( 2px 2px 4px rgba(0,0,0,.4) );
    filter: drop-shadow( 2px 2px 4px rgba(0,0,0,.4) );
}

谁能建议为什么这不起作用?我做错了什么,或者在Safari中进行了更改?


问题答案:

可能是有点晚了,但是以防万一我会把答案留给你。我在Safari中遇到了同样的问题,并且发现这似乎是Safari问题/错误。您可以解决该错误,只需将SVG标签与另一个HTML标签(如div)包装在一起,然后像在示例中一样,将阴影过滤器应用于此元素。在这里,您的示例已使用wrapper元素进行了修改

<div class="svg-wrapper">
    <svg>...</svg>
</div>

//CSS
.svg-wrapper {
    -webkit-filter: drop-shadow( 2px 2px 4px rgba(0,0,0,.4) );
    filter: drop-shadow( 2px 2px 4px rgba(0,0,0,.4) );
}

希望有帮助!



 类似资料:
  • 问题是,Safari为选中的g: 图像链接

  • 问题内容: 在Python控制台中: 给我: 为什么?有人可以用二进制给我解释这个特殊情况吗? 问题答案: 是。 是: 并且是: 这是在两个补1 1翻转所有位,将1加到结果数上,并将结果解释为幅度的 二进制表示形式 ,并添加一个负号(因为数字以1开头): 它是2,但是由于MSB是1 ,所以符号是负数。 值得一提: 想一想,您会发现它本质上是数字-它有两个值和,它们只是整数1和0的“自定义”版本,它

  • Filter SVG教程 SVG过滤器的输入和输出 SVG过滤器在应用过滤效果的时候需要一个输入源。这个输入源可以是一个图形,或图形的alpha通道,或另一个过滤器的输出值。 SVG过滤器可以从输入源中产生一个输出图像。一个过滤器的输出可以是另一个过滤器的输入,这样,过滤器可以被链接起来使用。 下面是一张SVG过滤器输入和输出的说明图片: SVG过滤器的输入通常在SVG滤镜的in属性中指定,例如:

  • 问题内容: 好的,我已经在网上搜索了所有内容,但还没有找到解决问题的方法,也许我缺少一些简单的东西,所以我在这里… 我有一个相当大的项目,处理维修业务的工单。它是所有与数据库连接的页面,其中包含许多页面的代码和类。但是我只是在前端添加了一小段代码,基本上检查了我们的注释区域中的新消息。 无论如何,我显示一个带有两个 JLabel 的简单 JFrame ,同时一个单独的线程查询数据库。所有这些都在程

  • 这是我第一次问有关StackOverflow的问题。我的问题如下: 我有一个生产者和消费者类。在Producer类中,我逐行读取文件,并将这些文本行放入字符串列表中。当列表的行数为x时。此列表将添加到ArrayBlockingQueue。我有一个在主线程中启动的生产者线程。除此之外,我还启动了几个消费者线程。使用者线程从队列中获取一个项目,该项目应该是一个列表,并遍历该行列表以查找特定单词。找到单

  • 问题内容: 我们在日志中看到频繁但间歇的 错误。我们不确定错误的真正来源以及调试方法。 该问题似乎与我们尝试发送的消息无关。请注意,该消息不是 。 关于此异常的典型原因是什么以及如何进行的任何建议? 这是一个代表性的堆栈跟踪(是我们的组件): 我们的组件是一个在Tomcat下运行的Web应用程序,该应用程序调用发送SMS消息的第三方Web服务,这种情况经常发生。引发异常的代码行是下面的代码片段的最