IEとFireFoxでの指定位置のズレに困っています。
cssでポップアップを施した部分についてなんですが、IEだと思った通りの位置に出てくるんですけど、FireFoxだと全然違った位置に出てきてしまいます。
ネットで色々調べて、知る限りの事を全てやってみましたが、結局一週間も無駄に過ごしています。だれか助けてください(ΩДΩ)
ちなみに以下がそのcssとhtmlです
■css■
.popup img.pop {
display:block;
top:-10000px;
left:-10000px;
position:absolute;
}
.popup a:hover {
position:relative;
}
.popup a:hover img.pop {
top: -290px;
left: -68px;
}
■html■
<DIV class="popup" align="center"><SPAN><a href=""><img class="pop" width="260" height="243" src="1.gif"/><IMG width="103" height="111" src="image1.jpg" border="0"></a></SPAN></DIV>
何をどう書き足したらFireFoxでもきちんとした場所に出てくるようになるんでしょうか?
どうぞよろしくお願いしますm(。-_-。)m
No.2ベストアンサー
- 回答日時:
IEのスタイルシートの解釈には、いまだにバグがあります。
そこで、あんなおかしな挙動になる。(あなたではなく、IEの動作はウソという意味)そこで、少しオーソドックスな書き方をします。
具体的にどこに表示したいかの補足がないので、親コンテナブロックの上から99%に指定してあります。top:-240pxとかでもよいですから、任意に変更すること。
・基本はabsoluteは、その親コンテナブロックがstatic以外だと、親コンテナブロックに対して、絶対配置される。
・動的な疑似クラスは、古いブラウザだとA要素にしか働かないので、a要素に適用する。
が基本にります。
【参考資料】
5.11.2 リンクに関する疑似クラス ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
5.11.3 動的な疑似クラス ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
9.3.1 配置体系を選択する ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
★その前に、HTML自体が正しくないとなりません。【最も重要な基本です】
これができてないと、ややこしくなるし、どう逆立ちしても無理になる。
今回は、(htmlに対するリンクなので)ナビゲーションリストで、画像で示していると解釈して次のようなマークアップがされているとします。(あなたのHTMLでは無理なのもありますし。)
下記HTMLだと、スタイルシートを解釈しないユーザーエージェントはむろん、スタイルシートを正しく理解できないユーザーエージェントはスタイルシートを解除することで閲覧に支障がないでしょう。大きな画像が表示されると邪魔・・
・・・・・・・・・・下記はタブを全角スペースで置き換えてあります。・・・・・・・・・・
・・・・・・・・・・画像はいずれも./images/にあるものとします。・・・・・・・・・・
・・・・・・・・・・画像、リンク先ファイル名は変えてあります。・・・・・・・・・・
<ol class="imageList">
<li>
<a href="page1.html">
<img width="103" height="111" src="../images/image1.jpg" alt="犬">
<span style="height:243px;width:260px;background-image:url(../images/1.gif)"><span>犬の写真へ</span></span>
</a>
</li>
<li>
<a href="page2.html">
<img width="103" height="111" src="../images/image2.jpg" alt="猫">
<span style="height:243px;width:260px;background-image:url(../images/2.gif)"><span>猫の写真へ</span></span>
</a>
</li>
</ol>
注意) <span>犬の写真へ</span>,<span>猫の写真へ</span>の部分は、
<span><img src="透明な画像" height="10" width="10" alt="犬の写真">の方がよいかも・・・
そうすると、スタイルシートの
ol.imageList a:hover span span,
ol.imageList a:focus span span,
ol.imageList a:active span span
{display:none;}
が不要になる。
★ポップアップ時の画像のサイズが異なるときは、位置を個別にHTML内で指定するとよい
<span style="height:243px;width:260px;background-image:url(../images/2.gif)">
で指定する。
<span style="height:243px;width:260px;background-image:url(../images/2.gif);top:-200px;">
☆Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
☆W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
で検証済み。
★ブラウザ(IE8,firefox,safari,googlechrome)は、同じ位置に表示される。
★Operaは、position:absoluteに対応していないためおかしな位置に表示されます。
________ここから全ソース(HTNK4.01strict/厳密型)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:hoge@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
html,body{
margin:0px;padding:0px;background-color:rgb(200,200,200);
}
body>div{
width:60%;min-width:500px;
max-width:800px;margin-left:auto;margin-right:auto;
background-color:white;padding:10px;border:none;
}
/* ここから */
ol.imageList{
display:block;
margin-left:0px;
padding-left:0px;
}
ol.imageList li{
display:inline-block;
margin-left:0px;
margin-right: 10px;
padding:0px;
list-style: none;
border:solid 1px blue;
position: relative;
}
ol.imageList a img{border:none;}
ol.imageList a span{
display:none;
position:absolute;
z-index: 2;
border: 1px red solid;
text-decoration: none;
/* ホーバー時のpopup画像の位置指定 */
top:99%;
left:-10px;
}
ol.imageList a:focus span,
ol.imageList a:hover span{
display:block;
border: 1px red solid;
}
ol.imageList a:active span{
display:block;
border-color:green;
}
ol.imageList a:hover span span,
ol.imageList a:focus span span,
ol.imageList a:active span span
{display:none;}
-->
</style>
</head>
<body>
<div>
<h1>サンプル</h1>
<p>ブラウザの横幅を変更しても、太郎<span class="rub" style="left:-4em">(たろう</span>内容が左右真中に表示されています</p>
<p class="test">こんな感じです。幅60%、ウィンドウ幅を変えると、ウィンドウ幅によって最小500px、最大800px内で変化する。</p>
<ol class="imageList">
<li>
<a href="page1.html">
<img width="103" height="111" src="../images/image1.jpg" alt="犬">
<span style="height:243px;width:260px;background-image:url(../images/1.gif)"><span>犬の写真</span></span>
</a>
</li>
<li>
<a href="page2.html">
<img width="103" height="111" src="../images/image2.jpg" alt="猫">
<span style="height:243px;width:260px;background-image:url(../images/2.gif)"><span>猫の写真</span></span>
</a>
</li>
</ol>
</div>
</body>
</html>
ぁぁあああああ、ありがとうございます!!!
なんかとっても詳しく書いてくれてる(ΩДΩ)
ここで質問したのは2回目なんですが、こんなに親切に教えてくれる人が居るとは思いませんでした!
お忙しい中時間をさいていただき深く感謝します!!!
はぁ~やっと地獄から解放されるんですねっ!!嬉しい♪
取り掛かりたい気マンマンですが、子供を風呂に入れなければ。
夜中に起きて頑張ってみます。
本当にありがとうございました!!
No.1
- 回答日時:
Operaでは、:hoverに反応しない。
クリックしたら反応する。Safari、firefox、GoogleChromeは同じ挙動
IEのみ、違う場所に出る。
どの位置に出したいのでしょう。スタイルシートを読む限り、IEの挙動はウソだね。
この回答への補足
すいません、ウソをついて何になるんですカ?(T-T)
ええと、今ホームページビルダー11でウェブサイト作ってます。
そしてブラウザ確認はIEとFireFoxでのみやってるんですが、ビルダーで確認した位置とIEでの表示はピッタンコ合うんですが、FireFoxで見ると・・・どーーーーーっしてもIEよりも上(ずいぶんズレた上)に表示されるんですよ。
今も別件で背景画像をスタイルシートで水平方向に何%垂直方向に何%と指定したんですが、IEで確認すると狙い通りに位置してるんですけど、FireFoxだと画像の半分から上が画面外に飛び出す程上にズレてるんです。
FireFoxのブラウザ内で一体どこの位置が基準になってるのか不思議でしょうがありません。
お手上げです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS htmlとcssで吹き出しの中に文字を置きたいのですが、 html 〈div class bb〉 〈 3 2023/02/04 22:44
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
余分な縦スクロールバーが出て...
-
floatすると一部、段になってし...
-
css初心者 フレックスボックス...
-
borderをページの下まで伸ばしたい
-
CSSで「overflow:scroll」をしてい
-
Firefoxで表示できるgifファイ...
-
背景画像をセットしたh1にmargi...
-
Media Queries 4 で 非推奨とな...
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
<li>の先頭に出るスペースの埋...
-
table周辺の隙間をなくしたい。
-
表示倍率を変えるとレイアウト...
-
スタイルシートで画面を縦に2...
-
WEBサイト作成:初心者です...
-
メディアクエリ スマホ対応のサ...
-
form input テキストを上下中央...
-
【HTML】【CSS】【Swiper】 元...
-
ロールオーバーで画像がずれな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
表示倍率を変えるとレイアウト...
-
CSSがなぜかfont-sizeだけ効か...
-
CSS、width100%でもできる余白
-
W3Cのソースコードの検証サービ...
-
CSS:animation開始位置の設定
-
CSSで指定した背景画像にリンク...
-
余分な縦スクロールバーが出て...
-
<div>と<div>の間の10px程の...
-
【CSS】ヘッダーの高さが不明の...
-
CSSでボックスのheightが0になる
-
スクロールボックスを中央に配...
-
li 黒丸含んで移動する方法
-
border-style:solidで文字がずれる
-
Media Queries 4 で 非推奨とな...
-
【HTML&CSS】フッター下部の余...
-
初心者html・CSS ウィンドウを...
おすすめ情報