• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:htmlとcssを使ったメニューバー)

HTMLとCSSを使ったメニューバーの作成方法と記述例

このQ&Aのポイント
  • HPのメニューバーをHTMLとCSSを使用して作成する方法を紹介します。左側にフレームページを表示し、メニュー項目を右側に表示させる設定にします。現在表示されているページのメニュー画像のみを入れ替えるように設定することも可能です。
  • HTMLとCSSを使用してHPのメニューバーを作成する方法について説明します。フレームページを左側に表示し、メニュー項目を右側に配置します。ページ切り替え時には現在のページのメニュー画像のみを変更するように設定できます。
  • HTMLとCSSを使ってHPのメニューバーを作成する手順と記述例を紹介します。フレームページを左側に表示し、メニュー項目を右側に配置します。ページ遷移時にはメニュー画像のみを入れ替えることができます。詳しい設定方法を解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • DrFell
  • ベストアンサー率55% (305/551)
回答No.2

まず、フレームで楽をしようという考え方は捨ててください。 html+cssでは、htmlで文章の構造(見出しとかリンクとか段落とか箇条書きなど)をcssではそれらの見た目(デザイン的要素、大きさ、色、背景、太さ、空き、罫線など)をそれぞれが担当します。html+cssではページが変わったらなんて判断はしません。毎ページにメニューも入れなければなりません。毎ページに同じ場所に同じデザインで左メニューあるなら、フレームのように見えるかもしれません。 ップページを右側に表示させている時、メニューのトップというところの画像がいれかわり、 ■トップ   トップ用の文章はこちらにいれます。入れ替えなくて、もともと □日記   左のように作ってください。そしてメニューと本文合わせて1ペ □写真   -ジを作成し、例えば、index.htmlとします。 □リンク 上のように表示させ、日記ページを右側に表示させている時も同様に □トップ   ページの数だけお手間でしょうがセットを変えて、左の様 ■日記   に作ってください。日記の内容とメニュー合わせて1ページ    □写真   作ります。トップの場所のリンクはindex.htmlとします。 □リンク では、どのようにメニューを左に、本文を右にするのか?見た目をどうするのかですから、cssの出番です。メニューグループと中身のグループに大きくわけます(つまり、2段)。メニューはulが、コンテンツはdivが適しています。いろいろ手法がありますので、「2カラム css」とか「段組 css」などで検索してみてください。表でもないものには、デザインの為に表は使いません。もしフレームのようにスクロールしても同じ場所にとどまるメニューをご希望でしたら、段組のことを理解してから、「疑似フレーム css」を検索してみてください。 現在のブラウザに対応していない場合がありますので、いろいろなブラウザで確認してから使うものを選ばれることをお勧めします。

8210
質問者

お礼

見た目が気に入ったのでフレームにしたかったのですが、考えが甘かったようですね。デザインを考え直そうと思います。 検索方法も教えてくださって、助かりました。 回答ありがとうございました!

その他の回答 (1)

  • Randomize
  • ベストアンサー率70% (38/54)
回答No.1

最も簡単に解決するのであれば、外部cssなしで実装可能です。 HTMLにこのように記述してください。 <table style="メニューを格納する表に適用したいスタイル"> <tr> <td style="backgroundImage:url(○○○○);" onmouseover="this.style.backgroundImage='url(△△△△)'" onmouseout="this.style.backgroundImage='url(○○○○)'"> <a href="リンク先" target="表示させたい場所"> <div style="width:100%;"> メニューに表示させたい文字 (思い浮かばない場合は本当は良くないけど全角スペース) </div> </a> </td> </tr> ・・・メニューの数だけ繰り返す・・・ </table> きれいに実装したい場合は必要部分を外部cssにまとめて書き出すとHTMLも美しくなるので、その場合はくくり出しを検討をしてみてください。 原理は、画像のイメージを入れ替えるのではなく、目的の部分の領域の背景画像をcssを応用してすりかえることで実現しています。 実はこの技法、画像は背景なので、画像に文字入れを行わなくても、文字入れした画像に見せることも可能なのが利点です。 さらに、外部cssに書き出してしまってスタイルをクラス名で切り替えると、同時に文字の色や太さなどを変更することも可能になります。 参考までにクラス名で切り替える場合はtdタグを下のように書きます。 <td class="○○○○" onmouseover="this.className='△△△△'" onmouseout="this.className='○○○○'"> あと、一見必要そうに見えない幅を100%に設定しているdivタグですが、これは必要です。外すと分かるのですが、無いと範囲の中に記述した文字の上しかリンクが張られなくなるので、divタグで領域全体にリンクを設定する為のものです。

8210
質問者

お礼

ロールオーバーのようになって可愛かったのですが、うまく設定できませんでした。 せっかく教えて頂いたのにも関わらず、活用できずにすみません。もう少しちゃんと勉強してから再チャレンジしてみます。 回答ありがとうございました!

関連するQ&A

専門家に質問してみよう