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

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

htmlとcssを使ったメニューバー

HPのメニューバーをhtmlとcssを使用して作成したいのですが、どういう風に調べてよいのかもわからないので、アドバイスだけでもいいので教えてもらえると助かります。 例えば下のようなメニューを作成するとします。 (「□トップ」という一つ一つの画像だと思ってください) □トップ □日記 □写真 □リンク これをフレームページの左側に表示させます。 トップページを右側に表示させている時、メニューのトップというところの画像がいれかわり、 ■トップ □日記 □写真 □リンク 上のように表示させ、日記ページを右側に表示させている時も同様に □トップ ■日記 □写真 □リンク と、現在見ているページのメニュー画像のみを入れ変えるという設定にしたいです。 できるのなら、cssとhtmlの記述例を教えてくださると大変助かります。 よろしくお願いします。

  • 8210
  • お礼率100% (3/3)

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

  • ベストアンサー
  • 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

  • ページの自動ジャンプ

    ホームページを初めて作成しています。 HTMLの知識もほとんど無いため、ネットでいろいろ調べて勉強しながら作ってます。 とりあえずフレームのあるHPを作成したいので、フレーム分けのindex.htmlと、左側メニューのmenu.html、右側のメインページのmain.htmlと作成しました。 右側のメインページには、日記とか掲示板とかいろいろ作っていきたいのですが、例えばフレームのメニューからでなくいきなり日記のページにダイレクトにアクセスしてきた場合、自動でトップページであるindex.htmlに飛ばす方法ってないのでしょうか? つまり、フレームのあるトップページ(index.html)に自動で飛ばしたいのです。 例えば日記のページに、 <meta http-equiv="Refresh" content="0; URL=http://www.XXX.com/index.html" target="main"> なんて記述してみたのですが、こうすると日記ページが自動でindex.htmlへ飛ぶには飛ぶんですが、2つ問題が出てしまいました。 1つはフレーム左側のメニューから通常通りページをクリックしてメインページを開いた場合、フレームが2段になってしまいます(同じメニューが左に2列表示されてしまいます) 2つ目は、左のフレームメニューから日記をクリックして日記のページを開こうとしてもやはりすぐにindexに飛ばされてしまう自体になってしまいました。つまり日記ページが見れません。 日記ページの最初にmetaタグでindex.htmlに飛ばしてしまってるのだから、当たり前といえば当たり前ですけど。 直リンされた時だけ飛ばして、フレーム左側のメニューから来る時は飛ばないで日記を表示させたいのですが。 こういうのって普通はjavascriptとか使ってやるものなんでしょうか? やり方を是非教えて頂きたいです。

    • ベストアンサー
    • CSS
  • フレームのHPで、ページを表示させた後にリンクさせない?方法

    二分割のフレームを使ってHPを作成中です。 左側にメニューがあり、右側にページを表示させる形です。 どの様に表現したら良いのかわからないのですが、 例えば、メニューの【topへ】ボタンでトップページを表示させた後は、 そのページが表示されている間は、【topへ】のリンクがなくなる様に するにはどうしたらいいのでしょうか? ビルダー8を持っていますが、使いこなせずに、見よう見まねでHTMLで作成しています。 宜しくお願い致します。。。

  • CSSでのページ構築について

    CSSでのページ構築について CSSでのサイト制作に挑戦しています。 まずは、テンプレートをつかってカスタマイズしてみようとおもい、テンプレートをDLしました。 「フッタ/左メニュー/メインコンテンツ/フッタ」というブログなどでよくあるものです。 (縦三段で、真ん中が左右2つに別れている2カラム) CSSファイルは、外部読み込み形式です。 トップページを作って、いざメニューからメインページのリンクを貼ろうと思ってつまずきました。 左ページのコンテンツメニューに設定したリンクを、右側の枠内に表示したいのですが、そういった場合は、どうすれよいでしょうか。普通に右側の内容をいれたHTMLにリンクすると、全画面がそのページになってしまって、ヘッダ/左メニュー/フッタは消えて(隠れて)しまいます。 ヘッダや左メニューをそのままにしてページ数を増やしたいときは、トップページをひたすらコピーして、右側の要素部分だけを変更していくのでしょうか? でも、それだとCSSにする意味がないというか、全然楽ではないですよね。 左メニューの項目が増えた時など、全ページを修正しなければならなくなりますし。 自分なりにCSS関連のサイトを検索して調べてみたのですが、どこも「トップページをそのままコピーしているようにしかみえない」のです。 右側ページ内容のHTMLに、ヘッダやメニューも読み込ませるような設定が必要なのでしょうか? ソフトはDW CS4を使っています。 どなたか、CSSの達人さま、教えてくださいませ。 お願い致します。

  • フレームを使わずに、左側にメニューを表示したい

    目的:フレームを使わずに、左側にメニューを表示したい。 最近、多くのサイトで見られるのですが、フレームを使っていないのに、左側にメニューが表示されています。このメニューは各ページで同じになっています。これはどのようにして作るのでしょうか。HTML作成ツールを使っているのでしょうか。私は手書きでページを作成していますが、メニュー部分が変更した時の修正が大変そうです。

    • ベストアンサー
    • HTML
  • フレームページへのリンク

    トップページ(フレームなし)から、フレームページへのリンクがうまく表示されません。 トップページのリンクボタンをクリックすると、左側フレームのメニューは表示されますが、右側の内容のページが「Not Found」で表示されません。 が、表示されたフレーム左側のメニューをクリックすると表示されます。 トップページから、左右両方表示させるのにはどうすればよいのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • CSSでメニュー作成

    OS:WindowsXP ProXP2 現在ホームページを作成しています。 メニューを作ろうと思うのですがフレームは使いたくありません。 実現したいことは左にメニュー、右に内容を表示させようと考えています。(メニューはリンク先へジャンプしても変わりません) しかしCSS(float)を使って実現できそうなところまで調べたのですが、 この方法ではリンク先をページ毎に書かなくてはいけなくなってしまい、もし変更があった場合全ページを修正しなくてなりません。 メニューだけ外部ファイルなどにして呼び出す方法はあるのでしょうか? ご存知の方ご教示宜しくお願いいたします。

  • CSSの擬似フレームでのリンク方について

    今まではHTMLでフレームを使っていたのですが、勉強になりそうなので、CSSを使って擬似フレームでサイトを作ってみることにしました。 だいたいのカタチは出来たのですが、リンク時に疑問が。 HTMLの時のように、リンク先をどこに表示するか名前指定でリンクすればいいと考えていたのですが、CSSでは実際は1つのページなので、名前指定というわけにはいきませんよね? リンクするときは新しいページに飛ぶ時・ページ内にリンクするとき以外は、擬似フレームのメニュー部を同じように記載したページを複製して、メイン部分を変えていくという解釈で良いのでしょうか? 回答、お願いします。

    • ベストアンサー
    • HTML
  • アメリカのヤフーのようなメニューの作成

    ホームページを作成しています。 趣味でサイトを作っているので、素人です。 アメリカのヤフーのトップページ左側にあるような、「アイコンが左側にあって、その横にAnswersとかAutosのようなリンクがあるメニュー」はどうすれば作ることができますか? http://www.yahoo.com/ cssでulの先頭に画像を入れてみましたが、これだと同じアイコンしか表示されません。 一行ずつ違うアイコンを表示できるようにしたいです。 完璧にヤフーと同じ方法は、恐らく私には無理なので、”それっぽく見える”方法などがあればと思うのですが。 すべてのページに同じメニューを作りたいので、できるだけ余計なタグが入らない方法(cssなどで)があれば、教えていただきたいです。

    • ベストアンサー
    • HTML
  • フレームで分かれたページへのリンク

    フレームで分割されていないページからフレームで分かれているページへリンクしたいのですが、そのときにリンク先によりフレームに表示されるページを指定したいのですがうまくできません・・・どうしたらいいのでしょうか? たとえば TOPページからリンクしていくと左側のフレームへメニューで右側には指定されたリンク先のページが表示するように。なのでクリックされたリンクが変わればそのページも違うページが表示されるようにです。 どうかよろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームとCSSの違い

    1ページを縦に2つに分けたデザイン(サイド部分とコンテンツ部分に区切られたページ)を作成します。 ページを作成する際、フレームで作成するのと、CSSでサイドとメインのレイアウトを作るのとでは、どちらがお勧めでしょうか。 見た目、左右に区切れてればいい(特定の人しか見ないので、ブラウザ表示はIEだけ確認できればOK)のです。 一般的にはどちらで作成したほうがよいでしょうか。 フレームとCSSとでの使い分けがよくわからないのです。 左側にリンク(メニューなど)を表示、右部分にコンテンツを表示する予定です。 初心者な質問ですみませんが、学び始めで少し混乱してしまっています。なんでもよいのでアドバイスよろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう