モバイルで背景画像の左端(ないし右端)に画像をリピートさせたい。
という案件に遭遇しまして。
どういう風に対応するのがベストかを色々試してみました。
条件は「3キャリア1ソース」「xhtml」です。
docomoのiモードブラウザ1.0(2008年秋冬モデル以前)はbackground-repeatが効かないため、背景画像の横幅は240pxにしないといけません。
※横幅いっぱいの背景画像でないと横(x軸方向)にもリピートしてしまう為。
<body style="background:#000000 url(bg_300.gif);">
<画像:QRコード:サンプルページ1>
→サンプルページを見る
ただ、このやり方だとVGA対応の画面で見た場合に画面中央あたりにもリピート画像が来てしまいます。
<body style="background:#000000 url(bg_300_wide.gif);">
<画像:QRコード:サンプルページ2>
→サンプルページを見る
横幅480pxの背景画像が240pxに圧縮され、同倍率で縦も縮小されてしまうようです。
ということで、この方法もNGです。
背景の横幅が画面より大きくなると画面サイズにあわせて縮小してしまうのはiモードブラウザ1.0。
→背景画像の横幅は240pxにすべし!
repeaet-yが効かないのはdocomoのiモードブラウザ1.0。
→VGA対応端末にはrepeat-yを指定しておけば横(x軸方向)にリピートしない!
ということで、背景の左端に画像をリピートさせたい場合は、「背景画像の横幅を240pxに」「repeat-yを指定」するとキレイに実現できそうです。
<body style="background:#000000 url(bg_300.gif) repeat-y;">
<画像:QRコード:サンプルページ3>
→サンプルページを見る
<body style="background:#000000 url(bg_300_r.gif) repeat-y right top;">
<画像:QRコード:サンプルページ4>
→サンプルページを見る
背景画像の表示位置を「right」にしておけば実現可能です。