• 締切済み

ブラウザによって表示がおかしくなります

下記のサイトを参考にしてページを作成したのですが、IEでは通常どおりに説明画像が見れるのに、safariやfirefoxで見ると、説明が像が画面の左上に表示されてしまいます。サイトの内容をコピーしてそのままhtmlに貼付けてアップしても、同じく左上に表示されました。 http://www.sky.sannet.ne.jp/masapine/java_link8.html? ちなみにこのサイトの見本は、ちゃんとした位置に画像が見れています。 わかりにくい説明ですみませんが、原因や対処方法がわかる方教えてください。よろしくお願い致します。

みんなの回答

  • abril
  • ベストアンサー率69% (388/560)
回答No.2

> 確かにDOCTYPEを消したら正確に表示されました。 えーとですね、ANo.1で申し上げた事のニュアンスが確実に伝わっているかどうか不安ですので念押ししておきますが、「DOCTYPE宣言がされていないHTMLファイル」の元でしか動かないJavaScriptは「正確に表示」されているとは言えない代物です。文書内容に相応しいDOCTYPE宣言をする事は「必須」ですので、決して現状のスクリプトを使いたいからというのを優先して「DOCTYPEを消」す様なまねはなさらないで下さいね。「WEB制作については勉強中」という事でしたら尚更です。 で。 > 見本をコピーしながらでないと作れない現状ですので、まだまだだということを痛感しました。 > 他の方法で表示させるために参考になるサイトなどございましたら教えていただけますでしょうか。 …自力では探せませんか?JavaScriptのサンプル集など、ググれば山ほどヒットする筈なんですが。 申し訳ないのですが「参考になるサイト」を私からお奨めする事は控えさせて頂きます。JavaScript絡みの他のスレッドでもお断りしているのですが、私はJavaScriptマスターではないので、ピンキリで存在するサイトの中から「どれが正確であり汎用性が高いのか」という事を判断する事はできない(私程度の知識ではしたくない)と思っているからです(確かにANo.1中で現状参考にされているサイトに関しては難ありと言わせて頂きましたが、その根拠は明らかにHTMLやCSSの点でかなり「良くない」ものであったから+内容がかなり古いから、です)。 「勉強中」であるなら尚更、「とりあえずできるだけ自分で検索して調べてみる」という努力をなさって下さい。現状のスクリプトは多分「JavaScript」という1つだけのキーワードでヒットされたリストの最初の方にあったのではありませんか?であれば、今度は一つだけヒントを差し上げます。質問者様のやりたいことの肝になるのは「オブジェクトの表示・非表示の切り替え」です。なので、今度はそういうキーワードを絡めて検索してみるか、より直接的には「JavaScript obj.style.display="none"」等と入れてみるとかなり核心に近づくと思います(それでいくつか使えそうなサンプルが上位に上がってくる事を確認済みですし、実際にスクリプトを借りてカスタマイズ・検証してOKだったものもあります)。そして今度は必ずサンプルのソースがちゃんと”DOCTYPE宣言をしたHTMLファイル”になっているかを確認して下さい。 それから、別スレッドで「ポップアップの表示位置を個別指定したい」というご要望も併せてある様ですね?ポップアップの個別のスタイルを制御するなら、その部分はCSSにまかせられるタイプの方が楽だと思います。おそらくですが、別スレッドの回答についたレスの内容(「引数」に対応できない)を見る限り、質問者様にはそちらのカスタマイズは難しそうに思えましたので。 あと、ここはJavaScriptのカテなんでこれは蛇足かもしれませんが、実はCSS”だけ”でかなり簡単にこの手の事は実現(ただしIEに対応させるにはJavaScriptも併用になりますが)できたりするのですが、質問者様はCSSについてはどれぐらいご理解をされているのでしょうか?もしそちらがある程度おわかりになる様でしたらCSS側からのアプローチについてアドバイスを差し上げる事も可能ですが…? 下記はCSSだけで制御、もしくは表示位置をCSSで個別指定できるJavaScriptを使用(その場合は<a>にイベントハンドラも入ります)した場合の構造の一例です。 <ul class="hoge"> <li><a href="hoge1.html">リンクhoge1</a> <p class="pop" id="hoge1">リンクhoge1にマウスオーバーした時のポップアップ。左から50px余白をとった位置に表示。</p> </li> <li><a href="hoge2.html">リンクhoge2</a> <p class="pop" id="hoge2">リンクhoge2にマウスオーバーした時のポップアップ。テキストをセンタリングして表示。<br>ここで改行。</p> </li> <li><a href="hoge3.html">リンクhoge3</a> <p class="pop" id="hoge3">リンクhoge3にマウスオーバーした時のポップアップ。上から20px、左右10pxの余白をとった位置に表示。</p> </li> </ul> もしこのソースを見て、CSSでどの様にスタイルを設定しようとしているのかだいたい想像がつく様でしたら、実際の方法論をご説明させて頂く事も可能です。が、全く見当がつかない様でしたら遠慮させて頂いた方がいいかと思います。

vivirie
質問者

お礼

何度もご説明していただきましてありがとうございます。 abril様のおっしゃる通り、よく調べてみたらDOCTYPEが宣言されていないのは問題外だったのですね。まだまだ勉強が必要でした。 他のJavascriptのサンプルを参考にしてみたいと思います。またご報告させていただきます、ありがとうございました。

  • abril
  • ベストアンサー率69% (388/560)
回答No.1

最近も似た様なスレッドがあったのですが、参照先の: http://www.sky.sannet.ne.jp/masapine/java_link8.html? のコンテンツのソースを見ると、HTMLファイルにDOCTYPEが宣言されていません。DOCTYPEの有無及び種類によって、表示に関する挙動は変わります。 試しに、サンプルのソースをコピーして、参照先と同様にDOCTYPEなしのHTMLファイルで検証してみましたら、IEでもFirefoxでもポップアップの表示位置は同様にリンクの下でした。しかし、某かのDOCTYPE、例えばHTML 4.01 Strictを宣言して再び表示すると、IEの挙動はそのままですがFirefoxでは画面(body)の左上隅にポップアップが出てしまう様になります。この現象は質問者様に起こっているものと同じと思われます(IEの挙動が変わらないのはまあIEが何かと独自解釈の多い悪い意味で特殊なブラウザだから、と思っておいて下さい)。 おそらく質問者様が上記のサンプルを挿入したHTMLファイルには、きちんとDOCTYPEが宣言されているのではありませんか? といって、参照先の様にDOCTYPE宣言がされていないHTMLファイルなどもってのほかですので、DOCTYPE宣言をした状態で望む挙動をする様に修正する必要があります。実は、DOCTYPE宣言下でのFirefoxの挙動の方が「正しい」のです。何故なら、サンプルのソースではポップアップを表示する位置をCSSで以下の様に設定してあるのですが、 .c1{ position:absolute; left:0px; top:0px; } これだと、bodyに対しての左の基点0・上の基点0の表示になり、画面の左隅に絶対位置で配置されるのが当然の結果となります。通常こういう様なスタイルであれば親要素に"position: relative;"を設定した上で適用しないと「リンクの下」という相対位置にはなりません。ただし、そうなると、HTML側のマークアップも適切なものに変える必要が出てきますし、それらのマークアップに付随するスタイルもCSSに追加してあげねばなりません。 ただ、参考先のサイトは内容(HTMLもJavaScriptも)も古いですし、先述の様にDOCTYPE宣言なしという致命的な間違いのあるコンテンツを提供しているのも問題外ですし、リンク部分のマークアップも<span>の中に<center>を入れ子にしていたりとレベルの低い文法ミスをしているので、総合的に見てここをお手本にするのはちょっとどうかと… なので、これを無理やり改良するより、同様の事ができるサンプルスクリプトはいくらでも見つけられますから、他のもっと良いお手本を探し直される事をお奨めします。

vivirie
質問者

お礼

ご丁寧に説明していただきましてありがとうございます。 確かにDOCTYPEを消したら正確に表示されました。 まだWEB制作については勉強中で、見本をコピーしながらでないと作れない現状ですので、まだまだだということを痛感しました。 他の方法で表示させるために参考になるサイトなどございましたら教えていただけますでしょうか。 よろしくお願い致します。

関連するQ&A

  • 個別に表示場所を変えたい

    さきほども質問させていただいた者です。 ?http://www.sky.sannet.ne.jp/masapine/java_link8.html??を参考に、カーソルを合わせた際に説明画像を表示するというものを作成していますが、一つ一つ表示場所を変えたいときは、どうしたらよろしいのでしょうか。Javascriptの部分を変えるのでしょうか。 これもわかりにくくて申し訳ございませんが、よろしくお願い致します。

  • おすすめのブラウザは?

    現在ブラウザは、safariを使っていますが 他のブラウザがsafariよりも良ければ、 そのブラウザ使いたいと思います。 まず、みなさんは、どのブラウザで ネットを見てますか? IEで見たり、firefoxで見たり、Chromeで見たりしてると思いますが それぞれの良いところを挙げてください。 僕は、safariを使ってますが、良いところは、 お気に入りサイトに素早く移動できるところです。 ブックマークバーというのがあって タブの上にお気に入りのサイトのリンクを表示させることが出来ます。 それがスタイリッシュなので、いくつも表示出来ます。(現在20サイト) ブックマークバーのいいところは、表示されている名前をクリックすれば リンク先へ飛べますし、 ショートカットキーを用いると素早くお気に入りサイトに行けます。 (command+数字)数字は、お気に入りの順番によって数字が変わる。 容易に順番も変えられますし、容易に消せます。 他にもスタイリッシュってところが好きです。 windowsのIEと比べると、最低限の機能だけですっきりしてます 不便なところは、safariだと表示されない画像などが たまにあります。 みなさんのおすすめのブラウザを教えてください。

  • ブラウザ表示について

    ブラウザ表示について DreamWeaverCS4でホームページをつくってfirefoxやIEやsafariなどで確認すると 文字をヒラギノで指定してしてたのがIEでは明朝になったり ケイ(ボーダーライン)を引いてたのがsafari では表示されなかったり 統一した表示にしたいのですがコードをどのように 書けばいいのでしょうか?

  • 大きさを指定して新しいウィンドウを開く方法

    ネットでいくつかサイトを回ってみましたが、いまいち、解りにくかったり、ちょっと違う。という感じですので、よろしくお願いします。 特に参考にさせて頂いたのは、http://www.sky.sannet.ne.jp/masapine/java_top.htmlの ボタンで小さなウィンドウを表示させよう。や 画像をクリックして小さなウィンドウを表示させよう。といったところで、ほとんど、そのままの事をやりたいのですが、実際には、文字に小さなウィンドウを開くリンクをはりたいのです。 その他にも、ホームページビルダーのサイトを見たりしたんですけど、どこがどう解らないのかも、解らない情けない状態です。 毎度のことで申し訳ありませんが、よろしくおねがいします。

    • ベストアンサー
    • CSS
  • ブラウザの表示を統一したい

    IE7の表示に他のIE8、firefox safariを統一したいのですがどうしたらよいのでしょうか。 IE7ではメニュー部分が縦に文字がずれることなく並んでいるのですが、IE8や他のブラウザで見ると、最新記事や月別アーカイブ、リンク等で表示しているピンクの文字が他より内側に入り込んでしまいます。 これをIE7の様に縦に揃った表示にさせたいのですが、テンプレートのスタイルシートをいじっても治りません もし解る方がいらっしゃいましたらどうかよろしくお願いいたします。

  • 画像をオンクリックで複数表示するには?

    ビルダー8で作成しています。 画像3枚を【1】【2】【3】といった数字にクリックで指定の場所に表示したいのです。 それを1ページに複数設置したいのですが、どのようにしたら設置できますでしょうか? http://www.sky.sannet.ne.jp/masapine/java_gazou.htmlのサイトを参考に設置したのですが、1つだけの設置の場合は動作したのですが、2つ目を設置したら動作しなくなりました。 改造ソースやもし良い方法があったら教えてください。

  • safariのリンク先の表示のしかたについて

    mac初心者です。初めてsafariを使ったのですがIEではリンクにカーソルを合わせるとリンク先のurlが左下に表示されたと思うのですが、safariでは表示ができないのでしょうか。firefoxだとプラグインが多いので動作が重くなってしまったのでsafariで表示できれば理想的です。 よろしくお願いします。

  • Safariの表示と他ブラウザの表示の違い

    HPを制作し、その表示確認にはwinのIE/NN/Firefox/Opera、Mac/IEを使用していますが、Safariで確認できる環境にありません。Safariってどんな感じでしょうか?上記で確認してOKなら、Safariでも大丈夫(そうな)感じですか?また、CSS等の扱いで、Safari独特のものなどもしあればお伺いしたいのですが。

    • ベストアンサー
    • CSS
  • ガイアックスで使うには・・

    初めまして。 わからない事があるのですが、 http://www.sky.sannet.ne.jp/masapine/java_link8.html にある、リンク先2のJavaScriptを ガイアックスのHPで使いたいのですが、 どうしても上手にできないんです。。。 できる方法などありませんでしょうか? また、同じような事を タグでできる場合はぜひ教えて下さい。 それでは、よろしくお願いします。

  • ブラウザでの表示を統一するには・・・

    画像を指定の場所に配置をしたく、下記のような書き方をしているんですが、 IE8の表示での位置は、大丈夫ですが、 safariで表示すると、縦位置がずれます。 双方で、同じ位置に配置するようにするには、どうすればいいでしょうか? よろしくお願い致します。 <table style="position:absolute;margin-top:-1000px;margin-left:-10px;"> <tr><td> <img src="http://画像.jpg" width="500" height="250" alt="ひまわり" /> </td></tr> </table>

    • ベストアンサー
    • HTML

専門家に質問してみよう