2017-01-10 34 views
1

私のコード私のウェブサイトに含めることを試みているのはクロームでは機能しませんが、Firefoxで動作しています。SVG画像のURLはChromeではなくFirefoxで動作しますか?

background-image: data:image/svg+xml,<svg%20xmlns%3D"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg"%20viewBox%3D"0%200%2020%2020"%20style%3D"fill%3A%23000%3B"%20height%3D""%20width%3D"">%20<path%20d%3D"M8.617%2013.227C8.09%2015.98%207.45%2018.62%205.55%2020c-.587-4.162.86-7.287%201.533-10.605-1.147-1.93.138-5.812%202.555-4.855%202.975%201.176-2.576%207.172%201.15%207.922%203.89.78%205.48-6.75%203.066-9.2C10.37-.274%203.708%203.18%204.528%208.246c.2%201.238%201.478%201.613.51%203.322-2.23-.494-2.896-2.254-2.81-4.6.138-3.84%203.45-6.527%206.77-6.9%204.202-.47%208.145%201.543%208.69%205.494.613%204.462-1.896%209.294-6.39%208.946-1.217-.095-1.727-.7-2.68-1.28z"%2F><%2Fsvg>; 

コピーとFirefoxにそれを貼り付けた場合、それは動作しますが、それはクロムでは動作しません。ここで

はコードです。

どうすれば修正できますか?

答えて

2

それはハッシュ文字でブラウザの非互換性と組み合わせて、あなたのCSSの構文エラーのように見え、主な違いは、データのURLは現在、CSSのURL関数表記にしていることをラップしていることです

background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" style="fill:%23000;" > <path d="M8.617 13.227C8.09 15.98 7.45 18.62 5.55 20c-.587-4.162.86-7.287 1.533-10.605-1.147-1.93.138-5.812 2.555-4.855 2.975 1.176-2.576 7.172 1.15 7.922 3.89.78 5.48-6.75 3.066-9.2C10.37-.274 3.708 3.18 4.528 8.246c.2 1.238 1.478 1.613.51 3.322-2.23-.494-2.896-2.254-2.81-4.6.138-3.84 3.45-6.527 6.77-6.9 4.202-.47 8.145 1.543 8.69 5.494.613 4.462-1.896 9.294-6.39 8.946-1.217-.095-1.727-.7-2.68-1.28z"/></svg>'); 

を試してみてくださいエスケープされている唯一の文字は、あなたが色を宣言するために使用するハッシュ(#)です。これはURLに予約された目的を持っているため、ブラウザはパスがその時点で完了したと考えるようになります。

+1

私はupvoteに行っていましたが、実際には他の特殊文字もエンコードする方が効果的です。 IEのいくつかのバージョンでは、エンコードされていない文字に関するいくつかの問題があります。 **しかしOPのエンコーディングはとにかく間違っているようです。また、あなたが適用した最終的な修正は言及していませんが、マークアップから 'width =" "height =" "'を削除しただけです。 https://jsfiddle.net/8s8mnu8t/ – Kaiido

関連する問題