- ベストアンサー
absoluteの縦位置がIEでずれる
- IEでの表示時に、position:absoluteで設置した部分が少し上にずれて表示される問題が発生しています。
- 他のブラウザでは問題なく表示されているため、IEに特有の問題と考えられます。
- 対策として親要素にwidth:100%を付けるなどの方法を試しましたが、解決できませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CSSには指定したブラウザにしか効かなCSSハックという ものがあります。 下記の様にCSSへ追加すれば、IE9ののみにCSSが 効果を発揮します #viewport{top:30px;}/* IE9以外 */ #viewport:not(:target){top: 50px¥9;}/* IE9 CSSハック */ 私はIE9は持っていないのでちょっと確認が取れませんが・・・・・。
その他の回答 (1)
- kiyoto-777
- ベストアンサー率74% (133/178)
1.絶対配置(absolute)は起点(原点)を決めてその起点に対しての 位置をtop と left で指定する。 起点が動けば絶対配置したものも起点が動くので 起点に対して相対的に動きます。 起点のエリアの部分にmargin:auto;と指定していれば、 起点のエリアは画面の大きさをかえれば自動的に中央に 移動します。 下記部分のCSSが起点指定と考えられるが、margin: 0 auto; となっているので縦の部分に関しては自動で中央寄せされ 位置が移動する。前後のHTML、CSSが不明なので わからないが、 margin: 0 0; としてみてはいかかでしょうか? div.check { position: relative; width: 842px; height: 189px; margin: 0 auto; } 2.IEのブラウザの場合は、バージョンによってまったく違う ブラウザと考えたほうがよい。 IEのブラウザのバージョンによって表示が異なる場合がある。 3.IEのブラウザバージョンを教えてください。 4.質問にかかれたHTML、CSSを設置されたホームページなどを 見たほうが回答しやすい。
お礼
ご回答本当にありがとうございます! margin: 0 0; としてみたのですが、左揃えになるだけで縦位置には変化がありませんでした。 IEのバージョンは9です。7と8ではなぜか正常に表示されました。 実際のHPを見ていただきたいのですが、今現在不特定多数の目に触れる場所にURLを公開出来る状態にありませんので申し訳ないです…。 ちなみに#viewportのtop: 30px;が他ブラウザで見た際の正常位置になりますが、 これをtop: 50px;とすると、IE9でも正常位置になるようです(他ブラウザでは当然位置が下がるのですが…)
お礼
この方法で無事修正する事が出来ました。 お助けいただき本当に助かりました。 ありがとうございました!