svg - 为什么 Safari 不显示我的 SVG 路径元素?
问题描述
考虑以下具有箭头和两只眼睛的 SVG 图像:
在 Google Chrome 中,此 SVG 图像可以正确显示。但是,在 Mac OS X 10.12.6 上的 Safari 12.1 (12607.1.40.1.5) 中,仅显示眼睛。箭头不见了,我不知道为什么。
预期的:
实际的:
据我所知,我的 SVG 代码是正确的。这是我的 SVG 代码供参考:
<!-- Copyright (c) 2019 Aadit M Shah -->
<svg width="128" height="128" viewBox="-28 -15.5 128 128" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<!-- avatar state glow -->
<filter id="glow" x="-5000%" y="-5000%" width="10000%" height="10000%">
<feFlood result="flood" flood-color="#A1C1E6" flood-opacity="1"></feFlood>
<feComposite in="flood" result="mask" in2="SourceGraphic" operator="in"></feComposite>
<feMorphology in="mask" result="dilated" operator="dilate" radius="2"></feMorphology>
<feGaussianBlur in="dilated" result="blurred" stdDeviation="5"></feGaussianBlur>
<feMerge>
<feMergeNode in="blurred"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<!-- left eye -->
<path fill="#FFFFFF" filter="url(#glow)" d="
M 28.316 90.594
C 24.937 91.228 21.347 97.563 14.801 96.718
C 8.255 95.873 2.130 85.103 0.230 86.159
C -1.671 87.215 8.677 81.302 14.379 82.569
C 20.081 83.836 25.360 91.650 28.316 90.594
Z
"/>
<!-- right eye -->
<path fill="#FFFFFF" filter="url(#glow)" d="
M 43.526 90.594
C 46.905 91.228 50.495 97.563 57.041 96.718
C 63.587 95.873 69.712 85.103 71.612 86.159
C 73.513 87.215 63.165 81.302 57.463 82.569
C 51.761 83.836 46.482 91.650 43.526 90.594
Z
"/>
<!-- arrow tattoo -->
<path fill="#FFFFFF" filter="url(#glow)" d="
M 26.204 0
C 23.932 5.371 22.291 15.107 21.320 25.147
C 20.198 36.728 19.966 48.712 20.677 54.869
C 14.417 55.442 7.485 54.372 0.440 53.376
C 6.953 62.322 26.132 81.074 35.921 87.637
C 45.710 81.074 64.889 62.322 71.402 53.376
C 64.357 54.372 57.425 55.442 51.165 54.869
C 51.876 48.712 51.644 36.728 50.523 25.147
C 49.551 15.107 47.910 5.371 45.638 0
Q 35.921 -2.000 26.204 0
Z
"/>
</svg>
我做错了什么还是这是Safari中的错误?
解决方案
那是你的过滤器。我删除了,x
和y
我正在使用filterUnits="userSpaceOnUse"width
height
<svg width="128" height="128" viewBox="-28 -15.5 128 128" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<!-- avatar state glow -->
<filter id="glow" filterUnits="userSpaceOnUse">
<feFlood result="flood" flood-color="#A1C1E6" flood-opacity="1"></feFlood>
<feComposite in="flood" result="mask" in2="SourceGraphic" operator="in"></feComposite>
<feMorphology in="mask" result="dilated" operator="dilate" radius="2"></feMorphology>
<feGaussianBlur in="dilated" result="blurred" stdDeviation="5"></feGaussianBlur>
<feMerge>
<feMergeNode in="blurred"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<!-- left eye -->
<path fill="#fff" filter="url(#glow)" d="
M 28.316 90.594
C 24.937 91.228 21.347 97.563 14.801 96.718
C 8.255 95.873 2.130 85.103 0.230 86.159
C -1.671 87.215 8.677 81.302 14.379 82.569
C 20.081 83.836 25.360 91.650 28.316 90.594
Z
"/>
<!-- right eye -->
<path fill="#fff" filter="url(#glow)" d="
M 43.526 90.594
C 46.905 91.228 50.495 97.563 57.041 96.718
C 63.587 95.873 69.712 85.103 71.612 86.159
C 73.513 87.215 63.165 81.302 57.463 82.569
C 51.761 83.836 46.482 91.650 43.526 90.594
Z
"/>
<!-- arrow tattoo -->
<path fill="#fff" filter="url(#glow)" d="
M 26.204, 0
C 23.932, 5.371 22.291, 15.107 21.320, 25.147
C 20.198, 36.728 19.966, 48.712 20.677, 54.869
C 14.417, 55.442 7.485, 54.372 0.440, 53.376
C 6.953, 62.322 26.132, 81.074 35.921, 87.637
C 45.710, 81.074 64.889, 62.322 71.402, 53.376
C 64.357, 54.372 57.425, 55.442 51.165, 54.869
C 51.876, 48.712 51.644, 36.728 50.523, 25.147
C 49.551, 15.107 47.910, 5.371 45.638, 0
Q 35.921, -2.000 26.204, 0
Z
"/>
</svg>
推荐阅读
- javascript - JavaScript 中的对象属性
- firebase - 我应该如何使用 firebase / google analytics 跟踪移动应用登陆页面
- sql - SQL:将变量设置为存储过程中的单元格值
- reactjs - React Typescript 中的道具“对象可能是‘未定义’”
- google-sheets - 多条件格式在谷歌表格中不起作用。只有 3 个步骤有效
- c# - 如何在 Rider 中添加 com 引用
- three.js - 是否可以为相机选择它应该渲染的对象?
- sql - 本质上解决sql中的线性方程
- c++ - C++ 将 4 个十六进制值转换为浮点数
- python - Python多处理而不阻塞父进程