26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS11のSafariでSVGが崩れてしまう原因

Last updated at Posted at 2017-09-28

はじめに

つい先日iOS11がリリースされ、世の中のweb屋さんはデバッグに勤しんでいると思います。

そんな中、iOS11のsafariのみでSVGが崩れるの発見したので解決方法を書いていきます

バグの内容

SVGアイコンをtransformを利用しアニメーションさせたりしているのですが、そのアニメーションがおかしい。

どうおかしいかというと、位置がずれたりする。

わけがわからない。

位置がずれるということは、何か座標計算がおかしいのかと疑いひたすらデバッグしてたら発見しました。

バグの原因

原因はtransform-boxの初期値が、iOS11のSafariはview-boxが指定されているため。

https://developer.mozilla.org/ja/docs/Web/CSS/transform-box

MDNを見るとview-boxの説明はこう書かれている。

参照ボックスとして、直近の SVG を使用する。SVG ビューポートに viewBox 属性が指定されていた場合、参照ボックスは viewBox 属性によって設定された座標系の原点に配置されます。また、参照ボックスの寸法は viewBox 属性の幅と高さの値に設定されています。

つまり、座標計算がSVGを使用して計算されてしまう。

対策はtransform-boxfill-boxを指定すること解決します。

これで、iOS11のSafariはiOS10のSafariと同じ位置計算になります(ハッピーエンド

終わりに

もしかしたら、SVGの書き方がオカシイ説もありますが助けになったら幸いです。

26
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?