質問: 画像上に文字を表示するとiphoneで位置がずれる ホームページで時間に応じて2行のテキストを時計画像の上に表示したいのですが 以下のcssを使った方法ではpcやアンドロイドではズレないで表示されます。 ただし親のiphoneを借りて見ると 何故か文字位置が下の方にずれてしまい画像から文字がはみ出してしまいます。 ブラウザは標準ではいってるやつ(safari?)です。 ! | | | --- | | この文章は | | サンプルですよ | どうもiphoneのsafariはフォントサイズを自動で調整する機能があるそうで それを解除するために以下のcssを追加してみました。 -webkit-text-size-adjust: none; このcssを追加するとフォントサイズは変えていなくても表示は小さくなり 位置ずれはマシにはなりました。 が、それでも行間が大きいためか画像からははみ出しています。 テーブル部分を2個に分離してそれぞれ位置を修正すれば、と思ったのですが それだとsafari以外は詰まって表示されてしまいますよね・・・シクシク。 他のブラウザならともかくiphoneの標準ブラウザなので何とか直したいです。 これを修正できる方法をご存知の方はおられますでしょうか? 画像の上に文字を表示できるのでしたら、 上記のcssとはまったく別のものになっても構いません。 よろしくおねがいします。
回答: それが背景画像でしたら、背景で指定しましょう。位置が時間によって変わるのでなければ背景をcoverで置けばよいです。 tableを配置のために使用するのは禁止です。tableは表のマークアップ以外に使用すべきではありません。 位置指定は、親になるコンテナブロックに対して相対的/絶対配置で指定すると良いでしょう。 html要素のstyle属性で指定すると、詳細度が[1,0,0,0]となってしまって外部スタイルシートなどで調整できなくなります。css3のメディアクエリ(media queries)を使用して端末の幅に合わせてスタイルを切り替えることができなくなります。 この文章は、 サンプルです div.timemessage{width:250px;height:46px;margin:0 auto;background:url(hoge.gif);} div.timemessage p{font-size:14px;margin:0;line-height:20px;padding-left:20px;} ※折角、文書構造とプレゼンテーションの分離のためにスタイルシートを使うのですから、htmlにはプレゼンテーションに関わることは一切記述したらダメです。tableが配置目的なら無論です。 こうしておけば、スタイルシートを書き換えるだけで、背景をやめることも、すべてのページののデザインを変更できます。