Ich versuche, ein Sprite-Blatt aus einer Reihe von Symbolen zu hacken. Ich weiß fast nichts über SVG. Ich kann die einfachen Symbole verwenden, aber ein Symbol mit einem Clip-Pfad wird nicht richtig angezeigt. Von dem, was ich sagen kann, scheint es, dass es nicht den Clip-Pfad verwendet.Clip-Pfad nicht ordnungsgemäß in SVG-Sprite angezeigt, wenn "Verwendung"
Das Sprite funktioniert in JsFilddle und es funktioniert, wenn ich nur die SVG auf eigene und laden Sie eine < verwenden> Anweisung in der SVG. Aber wenn ich eine separate < benutze> es funktioniert nicht.
Alle meine Tests hat in Chrome (50.0.2661.94)
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<clipPath id="folder-clip-0">
<path d="..." />
</clipPath>
<symbol id="folder" viewBox="0 0 32 32">
<g class="container" data-width="32" data-height="27" transform="translate(0 2)">
<path d="..." class="..." />
<path class="..." d="..." />
<path clip-path="url(#folder-clip-0)" d="..." class="..." />
</g>
</symbol>
</defs>
</svg>
Ich verwende es wie so geschehen:
<svg>
<use
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="/img/path/sprite.svg#folder">
</use>
</svg>
Wenn ich die gesonderte Erklärung es wie folgt aussieht:
Aber es sollte wie folgt aussehen:
Der Farbunterschied ist nicht relevant, es ist nur der Hintergrund, wenn das Bild aufgenommen wurde.
Edit:
Ich habe gerade entdeckt, dass, wenn ich das ganze Blatt Sprite in die Seite HTML-Dump und lokal anstelle einer externen Datei verweisen es funktioniert. Ich weiß also nicht, was mit meiner externen Referenz falsch ist.
z.B.
<svg>
<use xlinkHref={"/img/path/not/work/sprite.svg#folder"}></use>
</svg>
gegen
<svg>
<symbol id="folder"></symbol>
</svg>
<svg>
<use xlinkHref={"#folder"}></use>
</svg>
Dies funktioniert für mich als Ausweich, aber ich würde lieber eine externe SVG-Datei haben, anstatt es in meinem HTML einzubetten.
Edit 2:
Wenn das SVG-Sprite Blatt im HTML eingebettet wird direkt an den externen Link mithilfe zeigt das Symbol richtig.
Welche Browser versuchen Sie diese auf? – transistor09
Chrome 50.0.2661.94 hat das zum Beitrag hinzugefügt. –
Seltsamer, minimaler Test arbeitet jeden Abend, aber nichts erscheint auf Chrom. Vielleicht ist es ein Bug/nicht implementiert? – transistor09