Ich entwickle eine App mit D3.js. Ich wurde für eine Weile abgelenkt und kam kürzlich dazu zurück. Heute stellte ich fest, dass die SVG-Karte in der App zwar in der Vergangenheit gut funktionierte, aber nicht mehr auf Mobile Safari (iOS 9.3.1) oder Desktop Safari (Version 9.11 (11601.5.17.1)) angezeigt wird.Warum verursacht Filter (Schlagschatten), dass mein SVG in Safari verschwindet?
Ich extrahierte das SVG und eine einzelne Stilregel und legte sie auf CodePen, um zu illustrieren, was passiert. In Chrome wird dieser Stift gut aussehen. In Safari wird es komplett leer sein.
https://codepen.io/Kirkman/pen/pyKzeX
Wenn Sie das DOM in Safari überprüfen, finden Sie, dass die Wege sind, und sie sind die richtigen Formen. Sie scheinen nur unsichtbar zu sein. Deaktivieren Sie die Stilregeln im Inspektor bewirkt, dass die gesamte Karte magisch erscheinen (ohne Schlagschatten, natürlich)
Die Stilregel ist sehr einfach:
svg {
-webkit-filter: drop-shadow(2px 2px 4px rgba(0,0,0,.4));
filter: drop-shadow(2px 2px 4px rgba(0,0,0,.4));
}
Kann jemand empfehlen, warum dies nicht funktioniert? Habe ich etwas falsch gemacht oder hat sich etwas in Safari geändert?
Dies scheint die perfekte Problemumgehung zu sein.Ich versuche es und wähle es wahrscheinlich als Antwort aus. – Kirkman14
das hat gut für mich funktioniert. Es sollte die akzeptierte Antwort sein –
Vielen Dank für diese Lösung, super Leichtigkeit und super sauber. Sollte die akzeptierte Antwort sein. – Thasmo