[解決済み] SafariでSvg画像要素が表示されない
2022-03-07 23:57:19
質問
Safariブラウザ(Windowsでテスト中)では、Svg Image要素の表示に問題があるようです。
<!DOCTYPE html>
<html>
<body>
<h1>My first SVG</h1>
<img src="image.svg" />
</body>
</html>
そして、image.svgの中身はこんな感じです。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="50" y="50" width="100" height="100" style="fill:blue"></rect>
<rect id="foo" x="50" y="150" width="500" height="500" style="fill:green"></rect>
<image x="50" y="10" width="200" height="200" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="></image>
</svg>
Safariで動作させるための解決策や回避策はありますか?
どのように解決するのですか?
ここで、2つの問題があると思います。
-
SVG画像の大きさについて何も言っていませんね。原則として、最低でも
viewBox
属性は<svg>
タグを使用します。例えば<svg width="250" height="250" viewBox="0 0 250 250" ... >
-
もうひとつの問題は、SafariがSVGのレンダリングに特別優れているわけではないことです。しかし、SVGを
<iframe>
または<object>
タグを使用する代わりに<img>
. 例えば<object data="image.svg" type="image/svg+xml"></object>
また、サーバーが正しい MIME タイプで SVG コンテンツを配信していることを確認してください (
Content-Type: image/svg+xml
) も問題を引き起こす可能性があります。
では、これを試してみてください。
HTMLのソースです。
<!DOCTYPE html>
<html>
<body>
<h1>My first SVG</h1>
<object data="image.svg" type="image/svg+xml"></object>
</body>
</html>
image.svg。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="250" height="250" viewBox="0 0 250 250"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="50" y="50" width="100" height="100" style="fill:blue"></rect>
<rect id="foo" x="50" y="150" width="500" height="500" style="fill:green"></rect>
<image x="50" y="10" width="200" height="200" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="></image>
</svg>
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SVGオブジェクトの拡大縮小とミラーリング
-
[解決済み] d3.jsでノードのダブルクリックイベントを作成するにはどうすればよいですか?
-
[解決済み] getBBox() SVGRectはどのように計算するのですか?
-
[解決済み] SVGのストロークが一方向のみ
-
[解決済み] SafariでSvg画像要素が表示されない
-
[解決済み] ImageMagickでSVGをPNGに変換する方法は?
-
[解決済み】円弧(のSVGパス)を計算する方法)
-
[解決済み] SVG ルート要素のデフォルトの背景色
-
[解決済み] SVGの円弧パスによる円形描画
-
[解決済み] svgのx属性とdx属性の違いは何ですか?