iOS Safariでiframe要素の高さが広がってスクロールができない

iOS Safariでiframe要素の高さが広がってスクロールができません。

HTML

原因

この現象はそもそもiOS Safariではiframe要素の高さを指定しても固定されず、iframe要素内のコンテンツの高さになります。
これにより、スクロールが可能だったiframe要素の場合は、スクロールができくなってしまいます。

回避方法

この現象の対策としては次のようなCSSにすることで、iframe要素でスクロール可能にすることができます。

CSS

overflow-yプロパティの値をautoにしているのは、スクロールを可能にするためでもありますが、scrollにしてしまうとAndroidなどほかのブラウザではiframe要素側のスクロールを利用するため、autoに指定しています。

-webkit-overflow-scrollingプロパティは値をtouchにすることで慣性スクロールを可能にしますが、iframe要素がスクロール可能な要素で優先的に動作してしまうため、その優先する要素を変更させるため、-webkit-overflow-scrollingプロパティを指定しています。