• 締切済み

HP製作でオーバーマウスがうまくいきません。

現在、Webサイトを製作中なのですが CSSでのオーバーマウスの動作がうまくいきません。 コードは以下の通りなのですが イメージとしては、添付画像の様にA,Bのような画像で作ったボタンがあり そこのボタンにカーソルを合わせると Aのようにボタンの色が変化し 尚且つ、説明欄にAの説明が表示されるようにというイメージなのです。 しかし、実際のところは動作をせず・・・という状態です。 コードで説明しますとはセレクト、ブログ、コンタクトと何項目かあるんですが その場合は一番下のコンタクトしか動作しない状態なのです。 他はリンクタグすら正常に動きません。 思考錯誤をしていたところ  各所にある<ul class="menu">を削除したところ レイアウトは崩れるのですが 動作はしてくれました。 その部分をどのように修正すればいいのか もしくは、もっと根本的な部分から修正が必要なのか お手上げ状態です、ご助言をお願い致します。 contact.png >これがメニュー側で contact_un.png >これが説明側に表示されるべき画像です。 <html> <head> <meta content="text/html; charset=Shift_JIS" http-equiv="content-type"> <title>タイトル</title> <style type="text/css"> BODY { background-image:url(min.png); background-position: center center; background-repeat: no-repeat; background-attachment: fixed; } img { border-style:none; } .menu { padding-top:200px; /*--重ならない程度に押し下げています。--*/ } .menu a span { /*--オンマウスで表れる場所---*/ display:none; /*--最初は隠す。これがキモ。 検索エンジンに嫌われる理由でもある---*/ padding:5px; } .menu a:link{ /*--文字色 マウスを乗せたくなる色を---*/ } .menu a:visited{color:#000;} .menu a:hover, .menu a:visited{ /*--ここから下、%使う時はIEに注意---*/ display:block; text-decoration:none; } .menu a:hover .setumei_s { /*--オンマウスで表れる場所の指定---*/ display:block; position:absolute; /*--絶対位置・相対位置それぞれ長短あり。---*/ top:350px; left:110px; width:680px; font-weight:bold; line-height:1.5; } .menu a:hover .setumei_b { /*--オンマウスで表れる場所の指定---*/ display:block; position:absolute; /*--絶対位置・相対位置それぞれ長短あり。---*/ top:310px; left:110px; width:680px; font-weight:bold; line-height:1.5; } .menu a:hover .setumei_c { /*--オンマウスで表れる場所の指定---*/ display:block; position:absolute; /*--絶対位置・相対位置それぞれ長短あり。---*/ top:270px; left:100px; width:680px; font-weight:bold; line-height:1.5; } .menu a:hover .second { /*--オンマウスで表れる場所の指定---*/ top:600px; left:5px; width:23px; }summary_un #image a{ display:block; background:url() no-repeat; text-decoration:none;} #image a:hover{ color:orange; background:url(info_on.png) no-repeat; } </style> </head> <body style="background-color: rgb(0, 0, 0); margin-top: 0px; height: 27px; background-image: url(back.jpg);"> <!---セレクト--> <div style="position: absolute; top: -10px; left: -20px; width: 600px; height: 87px;" id="image"> <ul class="menu"> <a href="リンク"><img src="Mission.png"> <span class="setumei_m"><img src="Mission_un.png"></span></a> </ul> </div> <!---セレクト--> <!---ブログ--> <div style="position: absolute; top: 31px; left: -20px; width: 600px; height: 87px;" id="image"> <ul class="menu"> <a href="リンク/"><img src="blog.png"> <span class="setumei_b"><img src="blog_un.png"></span></a> </ul> </div> <!---ブログ--> <!---コンタクト--> <div style="position: absolute; top: 70px; left: -20px; width: 600px; height: 87px;" id="image"> <ul class="menu"> <a href="リンク"><img src="contact.png"> <span class="setumei_c"><img src="contact_un.png"></span></a> </ul> </div> <!---コンタクト--> </body> </html>

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

ごく簡単なサンプル書いてみました。  ただし、本来は画像になっている説明文などは、きちんと記述しておくべきです。次善の策として画像のaltに書いておいても良いでしょう。 [誤] <li>   <a href="./Summary"><img src="summary.png" width="180" height="32" alt="Summary"></a>   <p>     <img src="summary_un.png" width="332" height="70" alt="ここにテキストでリンク先の詳しい説明をかいておく。">   </p> </li> [正] <li>   <a href="./Summary">Summary</a><span>For an overview of the event Noted some Rough content It's about "king Fish" Please confirm participants.</span> </li> とか・・・  いずれにしても、 ・スタイルシートを読まないPC以外のブラウザ   スマホでない携帯電話とか、読み上げソフト、点字端末・・ ・検索エンジン ・プリンター で利用できなきゃHTMLで作成する意味がない。 【引用】____________ここから HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より →テキストを画像に置き換えて表現する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 )は、強く非推奨なのです。 ★サンプルは、スマホには対応はしていますから小さなウィンドウでも問題なく利用できるでしょうが、その他のユーザーエージェント(プリンター、携帯電話、読み上げソフト、点字端末、検索エンジンには未対応です。 ★ボタン画像は無駄な余白を切り捨てて、下記のサイズに切り抜いています。必ず下記サイズに切り抜いてテストしてください。 ★HTMLも極めて簡単できちんと文書構造だけを示していることを確認すること。 ★スタイルシートが、文書構造を基に書かれていて簡単でわかりやすいこと。  先でどのようにもデザインを変えられること ★オリジナルと異なりスタイルシートなしで表示しても利用できること ・・・などを確認してください。 <!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 name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css" media="screen"> <!-- html,body{margin:0;padding:0;} body{ _background:url(min.jpg) black top left no-repeat; _background-size:100%;/* CSS3 */ } div.header h1{margin:100px auto 50px 40px;;width:390px;text-align:right;} div.header h1 img{display:block;width:100%;height:auto;} div.section{height:100%;} div.section h2{display:none;} div.section ul.nav, div.section ul.nav li{ _display:block;list-style-type:none; _text-align:right; } div.section ul{width:390px;position:relative;} div.section ul.nav li p{display:none;} div.section ul.nav li:hover p{display:block;position:absolute;top:100%;right:0;} div.footer{ _height:60px; _position:absolute; _bottom:0; _color:white; } div.footer h2{display:none;} --> _</style> </head> <body> _<div class="header"> __<h1><img src="tile.png" width="391" height="51" alt="OPERATION KINGFISH"></h1> _</div> _<div class="section"> __<h2>サイトマップ</h2> __<ul class="nav"> ___<li> ____<a href="./Misson"><img src="summary.png" width="180" height="32" alt="Summary"></a> ____<p> _____<img src="summary_un.png" width="332" height="70" alt="ここにテキストでリンク先の詳しい説明をかいておく。"> ____</p> ___</li> ___<li> ____<a href="./info.html"><img src="info2.png" width="248" height="32" alt="Infomation"></a> ____<p> _____<img src="info_un.png" width="370" height="104" alt="ここにテキストでリンク先の詳しい説明をかいておく。"> ____</p> ___</li> ___<li> ____<a href="./Misson"><img src="mission.png" width="320" height="32" alt="Misson"></a> ____<p> _____<img src="mission_un.png" width="370" height="104" alt="ここにテキストでリンク先の詳しい説明をかいておく。"> ____</p> ___</li> ___<li> ____<a href="./blog"><img src="blog.png" width="100" height="32" alt="Blog"></a> ____<p> _____<img src="blog_un.png" width="370" height="102" alt="ここにテキストでリンク先の詳しい説明をかいておく。"> ____</p> ___</li> ___<li> ____<a href="./contactUs.html"><img src="contact.png" width="240" height="32" alt="Contact Us"></a> ____<p> _____<img src="contact_un.png" width="370" height="104" alt="ここにテキストでリンク先の詳しい説明をかいておく。"> ____</p> ___</li> __</ul> _</div> _<div class="footer"> __<h2>文書情報</h2> __<address>&copy; ORUKA1951 2001 - 2004 All Rights Reserved mailto:*****</address> _</div> </body> </html>

すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

No.2です。追加情報をお願いします。 ・リンクボタンのサイズ、画像を使うならそのサイズ ・リンク先の説明の画像サイズ ・それぞれの表示位置

gerugugu2
質問者

補足

お世話になります、質問者です。 アドバイスありがとうございます。 リンクのボタンのサイズなのですが477*39になります。 また、2点目の説明画像のサイズは何パターンかあり それぞれがサイズが異なるのですが380x100程度のものです。 位置ですが、どのように表記すればよいのかわからないので サイトのURLを添付いたします。 こちらがそのサイトです。 http://urx.nu/1z0X

すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>もっと根本的な部分から修正が必要なのか だと思います。 1) まず、HTMLを復習しましょう。  同じidはページ内に一箇所しか存在できません。id="image"が何度も登場している!! 2) それぞれの要素にはどんな要素を含むか決められています。   ul要素にはli以外含むことはできません。  <ul>   <li><a href=""></a></li>  ★<!ELEMENT UL - - (LI)+ -- unordered list --> ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/lists.html#edef-UL )   要素ULにはli要素をひとつ以上含むと書かれています。   これを<ul><a>のように記述するとブラウザは文書構造を理解できないため適当に補完しますがその解釈はブラウザによって異なるためスタイルシートが思い通りに適用されません。 3) HTMLは文書構造だけを記述するものです。用意されたタグで足りないときはclassやidを使って文書構造を補完します。 【引用】____________ここから DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )]より 【引用】____________ここから メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[W3C CSS 検証サービス( http://jigsaw.w3.org/css-validator/#validate_by_input )]より  素のHTMLを記述したら、ネット上のValidatorで文法チェックを必ず行ってから次に進みます。  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ・The W3C Markup Validation Service ( http://validator.w3.org/ ) ・Another HTML-lint gateway ( http://cetus.sakura.ne.jp/htmllint/htmllint.html ) 4) スタイルシートはその文書構造を元にセレクタでデザインしたい要素を特定してデザインします。 5) CSS(カスケーディングスタイルシート)にはカスケーディングという重要な仕組みがあります。それがCSSの命です。それを知っておかなきゃ使えません。  #(一意セレクタ)での指定は詳細度b=1ですが、HTML要素のstyle属性で指定すると、詳細度がa=1となり上書きできなくなります。  重要→6.4.3 Calculating a selector's specificity ( http://www.w3.org/TR/CSS2/cascade.html#specificity )   これはCSS2.1で変更されたため、CSS2.1のものをあげておきます。 添付画像がないのでシカとはわかりませんが、HTMLは次のようなものになると思います。  これなら誰でも書けるし、後でメンテナンスも容易。へんなコメントも不要(classはそのために書くのですから)  また、文書構造しか書いてないので、HTMLを変更しなくても、どのようにもデザインできます。 ★Another HTML-lint gateway ( http://cetus.sakura.ne.jp/htmllint/htmllint.html ) ★The W3C Markup Validation Service ( http://validator.w3.org/#validate_by_input ) にて検証済みのウェブ標準(HTML4.01strict) (注) class名は文書構造を補完する目的でつけてある。HTML5の新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )名とその用途を参考にしてある。 (注) 画像を読み込まない状態で見て置くこと--googleが見ている姿-- (注) タブは_に置換してあるので戻すこと。 <!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 name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css"> <!-- --> _</style> </head> <body> _<div class="header" id="TOP"> __<h1>タイトル</h1> _</div> _<div class="section"> __<ul class="nav" id="SITE_MAP"> ___<li> ____<a href="./Misson"><img src="Mission.png" width="80" height="40" alt="Misson"></a> ____<p> _____<a href="./Misson"><img src="Mission_un.png" width="480" height="360" alt="ここにテキストでリンク先の詳しい説明をかいておく。"></a> ____</p> ____<!-- a要素にpは含むことができないので別途aで括る --> ____<!-- 画像には必ずwidthとheight、およびaltを記述すること【必須】 --> ___</li> ___<li> ____<a href="./blog"><img src="blog.png" width="80" height="40" alt="Blog"></a> ____<p> _____<a href="./blog"><img src="blog_un.png" width="480" height="360" alt="ここにテキストでリンク先の詳しい説明をかいておく。"></a> ____</p> ___</li> ___<li> ____<a href="./links.html"><img src="contact.png" width="80" height="40" alt="Contact Us"></a> ____<p> _____<a href="./links.html"><img src="contact_un.png" width="480" height="360" alt="ここにテキストでリンク先の詳しい説明をかいておく。"></a> ____</p> __</ul> _</div> _<div class="footer"> __<h2>文書情報</h2> __<dl class="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2005-06-10</dd> ___<dt id="LAST-MODIFIED">Last Modified</dt> ___<dd>2005-06-10 12:00:00 (JST)</dd> __</dl> __<address>&copy; ORUKA1951 2001 - 2004 All Rights Reserved mailto:*****</address> _</div> </body> </html>

すると、全ての回答が全文表示されます。