スマートフォンとposition:fixedのバグ
iPhoneではiOS5からAndroidでは2.2からposition:fixedに対応されてスマートフォンでも固定配置が利用できつつあります。と思いきや色々と落とし穴が多いのでまとめておきます。
Androidではuser-scalable=noが必須
<meta name="viewport" content="user-scalable=no" />
Androidではviewportにuser-scalable=noの指定がないとposition:fixedが動きません。iPhoneではuser-scalable=noの指定がなくてもposition:fixedが動きますがけっこう挙動が微妙なのでuser-scalable=noは指定しておいたほうが良いでしょう。
サンプル(user-scalable=noあり)
サンプル(user-scalable=noなし)
iPhoneでURLに#がついた状態だとバグる
iPhone(iOS5)でURLの末尾に#がついた状態でスクロールすると固定配置した要素が出たり消えたりします。
ページ移動後もどってきたら位置がおかしい
iPhone(iOS5)で他ページに移動後、戻るボタンでページにもどると表示位置がずれてます。
あと、こういうのも見かけました。
user-scalable=noとposition: fixedを使用すると、-webkit-transformが動かなくなる
というわけで実務的にはほとんど使えない気がするわけです。
関連エントリー
スマートフォンサイトをデザインする上で知っておくべき10のTIPS
AndroidとjQueryのスライドアニメーションの不具合
Androidのposition:absoluteとフォームの問題
iPhoneで特定のzoomとfont-sizeの際に文字サイズが拡大するバグ
Androidでfont-weight:boldを適用する方法
スポンサードリンク
«WiMAXのホームルータ(URoad-Home)を試してみた | メイン | jQueryデザイン入門がAmazonの2011年Best Booksで11位に!»