iOS Safariでだけフォントサイズが崩れたら-webkit-text-size-adjustを使う
モバイルデバイスにおいて、フォントサイズを自動調整する機能のためのCSSプロパティ
https://developer.mozilla.org/en-US/docs/Web/CSS/text-size-adjust
スマートフォン用のレイアウトがないページをスマホで表示するとフォントサイズがとても小さくなってしまうので、ブラウザが自動でサイズを調整できるように作られたらしい
SafariではiOSでのみ実装されていて、ベンダープレフィックス-webkit-text-size-adjustをつける必要がある
https://caniuse.com/text-size-adjust
この自動調整機能によって、「スマホでだけCSSで指定したフォントサイズよりも大きくなる」「デバイスを横向きにするとフォントサイズが大きくなる」といった現象が起こる
レスポンシブデザインなどを利用してスマホに最適化済みであれば、この挙動は邪魔なので100%を指定することで自動調整を無効化できる
noneでも同じだが、昔のブラウザでバグがあったため100%の方がよく使われるようだ
code:css
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
「highlight.jsでシンタックスハイライトしたコードブロックにおいて、iOS Safariでだけ一部フォントサイズが大きくなる」現象に遭遇したが、これも自動調整機能が原因のようだった
上のCSSを適用したら直った
https://ideal-reality.com/programing/highlightjs-line-numbers-js-css/
normalize.cssやsanitize.cssなどいくつかのリセットCSSでは、-webkit-text-size-adjust: 100%が設定済みになっている
https://github.com/necolas/normalize.css/blob/fc091cce1534909334c1911709a39c22d406977b/normalize.css#L13
https://github.com/csstools/sanitize.css/blob/092d0d85922bfa72d28e9e8d25d80a5437c8df44/sanitize.css#L43