- ベストアンサー
CSSのことで迷子になってます。誰か教えて下さい。
CSSを使って各ページにメニューがあるページを作りたいのですが誰か教えて下さい。 パソコン初心者なもので・・・。 昨日まではHTMLのフレームを使うところまではいったのですが、それだとメニューをクリックした時にURLが変わりません。 URLが変わって、メニューに変更があった場合などは一箇所直せばすむようにしたいです。 誰か助けて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>クリックした時にURLが変わりません。 ブラウザーのアドレスバー内の表示が変わらないということでしょうか? アドレスバーに表示されているのは、ページの構成のトップのアドレス(フレームならフレームを定義しているhtmlのアドレス)なので、ここをそれぞれのページのアドレスにしたいのであれば、トップに当たる部分をそれぞれのページにしないとなりません。 一方、 >メニューに変更があった場合などは一箇所直せばすむようにしたいです。 とのことなので、やっかいなのですが… >パソコン初心者なもので・・・。 も加味して考えると、各ページのコンテンツにiframeでメニューを表示させるのがよろしいかと思います。 (普通と逆の利用方法なので、ちょっと変かも知れませんが…) この場合、各ページにメニュー用のiframeを設定しておかなければならないので、一度はそれぞれのソースを修正する必要がありますが、メニュー表示の内容は同じファイルが表示されますので、内容変更の際はメニューファイルを修正しさえすれば全部に反映されることになります。 (最初の修正も、ほとんどコピペで済むと思います。) iframeを利用する場合、リンクのターゲットをトップに指定しておかないと、iframeの中にリンク先が表示されてしまいますので、ご注意ください。 今時の方法でやるなら、iframeも使わずに、メニュー表示部を<div>などにしておいて、Ajaxで読み込むとか、サーバ側で処理するなどの方法もありますが、今の質問者様には、すぐに実行するのには難しいかと思います。 なお、ご質問は >CSSを使って各ページにメニューがある~~ でしたが、CSSは各ページの表示スタイルを設定するものなので、内容についての制御はできません。一度、CSSの役割を調べ直してみてください。 メニューの表示位置やスタイルの設定などには、是非CSSをご利用なさるとよろしいかと思います。
その他の回答 (1)
- abril
- ベストアンサー率69% (388/560)
ご質問の内容が、先日既出の質問とほぼ同じですので、こちらを先ずお読みになってみると、ご希望を満たす為にはどの様な方法があるのか、という事がとりあえずわかると思います↓ http://oshiete1.goo.ne.jp/qa5050491.html なお、上記でも回答させて頂いていますが、「CSSを使って各ページにメニューがあるページを作」る事そのものは勿論可能ですが、残念ながらCSS”だけ”では; > URLが変わって、メニューに変更があった場合などは一箇所直せばすむように というご希望を実現する事はできません。CSSの担う役割が質問者様がご想像しているものとは違うからです(詳細は上記質問の方の回答を参照して下さい)。 > HTMLのフレームを使うところまではいったのですが、それだとメニューをクリックした時にURLが変わりません。 フレームとはそういうもの(フレーム内に別のHTMLファイルを呼び込んで遷移するが、URLとして表示されるのはあくまでフレーム構造そのもののファイルのパスのみ)ですので、フレームを使いつつ、メニューをクリックしたらURLが変わるというのは相反する状態の為、実現されません(フレーム構造のファイルからフレームを破棄してまた別のフレーム構造のファイルへ遷移するなら勿論その時点でURLは変わりますが…)。 ちなみに先程締め切られたご自身の質問 http://oshiete1.goo.ne.jp/qa5054958.html での、No.1・3様のご回答は理解できましたか?「あの」サイトのコンテンツは、クリックして遷移して行くファイル毎にメニュー部分を記述したソースもその都度含まれているだけの、何の変哲もない普通のHTMLファイルの連続で成り立っています。メニュー部分だけが独立したファイルとして管理(質問者様のお言葉でいうところの「固定」)されているわけではありません。テンプレートをコピペしながら一枚一枚別のHTMLファイルとして作成されているだけです。従って、あのサイトのコンテンツもメニューの内容が変わったりすれば、メニューが記載されている全てのHTMLファイルを全部修正しなければならない構造ですので…
お礼
早速、やってみます。 ホント、ありがとうございます。