私は一連のアイコンからスプライトシートをハックしようとしています。私はSVGについてほとんど何も知らない。シンプルなアイコンを表示させることはできますが、クリップパスのアイコンが正しく表示されません。私はそれがクリップのパスを使用していないようだと私が言うことができるから。"使用"を使用しているときにクリップパスがSVGスプライトで正しく表示されない
スプライトはjsfilddleで動作し、SVGを独自のものにロードしてSVGに< use>ステートメントを含めると動作します。しかし、私は別の<使用している>それは動作しません。
すべての私のテストは
<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>
(50.0.2661.94)Chromeで行われてきた私はそうのようにそれを使用しています:私は別のステートメントを使用する場合
<svg>
<use
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="/img/path/sprite.svg#folder">
</use>
</svg>
それは次のようになります。
しかし、それは次のようになります。
色の違いは、画像が撮影されたばかりの背景だ、関係ありません。
編集:
私はちょうど私がページのHTMLに全体のスプライトシートをダンプし、代わりにそれが動作する外部ファイルのローカルでそれを参照する場合ことを発見しました。だから私は私の外部参照に何が間違っているのか分からない。
<svg>
<use xlinkHref={"/img/path/not/work/sprite.svg#folder"}></use>
</svg>
対
<svg>
<symbol id="folder"></symbol>
</svg>
<svg>
<use xlinkHref={"#folder"}></use>
</svg>
これはフォールバックとして私のために動作しますが、私はむしろ代わりに私のHTMLの中に埋め込む外部SVGファイルを持っていると思います。
編集2:
SVGスプライトシートが直接外部リンクを使用してHTMLに埋め込まれている場合、正しくアイコンが表示されます。
何ブラウザこれを試着していますか? – transistor09
Chrome 50.0.2661.94が投稿に追加されました。 –
Nightlyでは奇妙で最小限のテストが行われますが、Chromiumには何も表示されません。おそらくそれはバグ/実装されていないでしょうか? – transistor09