• ベストアンサー

CSSによるFrameの代替方法

趣味でHPを作成しているものなのですが、 左 |____上_____ 左 | 左 |____下_____ という3分割フレームを使っています。 左にはサイトMapを置き、上にはページタイトル、 そして、下には、左のMapでクリックしたものを「target」で、 下に表示しているのですが、 今後Frame要素がなくなるのではないかと 危惧している為、CSSで代替出来ないかと考えております。 左と上はフレームである必要も無いので良いのですが、 サイトの画面を移動せず、下という1部分だけを 切り替えてという感じで引き続き運営して行きたいのですが、 CSSで代替できないでしょうか? なんとなく段組みレイアウトとJavaScript(こちらは カテ違いですがわかれば)あたりで、何とか出来ないかと 思っています。その他の言語でしょうか? 私は独学でやっているもので、ジャストなものをサイトで探しても 見つからず、持っている本等にも書いてないので、 お分かりの人がいれば教えて頂きたいと思います。 宜しくお願い致します。

  • HTML
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
noname#23734
noname#23734
回答No.3

フレームを使わなければ全てのページにメニューを書けば良いのですが、同じメニューを全てのページに入れるのは面倒ですね。 それでフレームを使っているのだと思いますが、メニュー部を共有するならSSIを使う方法が比較的見つけ易いですね。 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2006-05,GGLG:ja&q=ssi+%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC 但し、サーバーがSSIに対応していないと使えませんし、メニューのリンクを検索エンジンが辿るのか?なんて心配もありますね。 javascriptでメニュー部を書き出しても良いのですが、noscriptに同じことを書くことになりますので全く旨みがないのではないかと思いますし、noscriptを書かないと検索エンジンは辿りませんね。 普通に外部javascriptを作ってdocument.writeで書けば良い方法です。 そんなときには、perlでも覚えてパソコン内でperlを動かしてHTMLファイルを作らせるようにしてしまえばメニューの更新も簡単に済みますけどね。 メニュー部分のHTMLのファイル(1つのファイル)と今まで内容が書かれたファイル(沢山あるファイル)を合体させて新しいファイルを作り保存するスクリプトですね。 ---ローカル環境でperlを動かすための参考ページ----------- ActivePerlのダウンロード http://www2j.biglobe.ne.jp/~apollo/server/server.html AN HTTP Server Home Page http://www.st.rim.or.jp/~nakata/ ---実際にスクリプトを組む時の参考ページ-------- perlファイル操作とファイルハンドル http://www.kent-web.com/perl/chap6.html ページが増える度にperlにHTMLファイルを作らせてそれを一括でサーバーにアップロードすれば簡単に済みますよ。 パソコンの中にメニュー管理用ページを作ってメニューの変更などができてボタンを押すとそれを埋め込んだファイルを作るようにしておくとより簡単になります。 以上参考意見でした。

abacabu
質問者

お礼

回答有難うございました。 いろいろな方法があるのですね。 私は擬似フレームに付いてまず調べた所 あるサイトでSSIが良いというような内容のコメントを 見つけました。ほかにもPHP、CMSでも同様に作業できる様です。 かつ、SSI、PHPはフレーム同様更新作業が比較的簡単なようですので まずSSIを本やサイトで勉強してみようと思います。 PHPもまだ新しめのプログラム言語みたいですし興味があります。 試行錯誤していずれかのプログラムで作成したいと思っています。 がYAHOO!ですのでこれらの言語が使えるかは不明です。 CGIが使用不可なので、恐らく使えなそうですが…。 最悪は擬似フレームか、フリースペースか、 まぁ、頑張ってやってみます!! それでは皆様有難う御座いました。

その他の回答 (3)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.4

回答ではなく参考意見です。 以下のようなことは十分に考えた上の質問でしたら 御免なさい。 >今後Frame要素がなくなるのではないかと >危惧している為、CSSで代替出来ないかと考えております。 既に作られたホームページとの互換性を考えると、新規に 使うことを非推奨とされても、相当長期間にわたって 使えると思います。 >左と上はフレームである必要も無いので良いのですが、 >サイトの画面を移動せず、下という1部分だけを >切り替えてという感じで引き続き運営して行きたいのですが、 サイトの画面を移動せずというのは「url」を変えずという意味 でしょうか。 現在、フレームがあまり使われなくなってきているのは、検索 エンジンなどで検索した結果からダイレクトに目的のページに 到達してもらうためだと思います。階層が深かったりすると、 せっかくホームページに来てもらっても、諦めてしまう人が 多いでしょう。 一方フレームの中のページだけが表示されてしまうと 何のホームページか判ってもらえなくなってしまいます。 これを両立させるために、フレームを使わず詳細な内容と 目次などを常時表示させるような設計になってきているの だと思います。 そうだとするとフレームを使わなくても、urlが変わらない のだとすると目的が達成されなくなってしまいます。 フレームを使わずに、目次やコンテンツを管理しやすくする 道具がCMSといわれるソフトで、xoopscubeなどがあります。 しかし、これはこれである程度の技術力を必要とし、 誰にでもお勧めというのはまだないかと思います。

abacabu
質問者

お礼

回答ありがとうございました 私のパソコンが良い例なのですが、一応WinXPで まぁ新しめのOSではありますが、ノートですし、 なんだか余り知識も無いため安いPCを買ったので HP読み込みが少々ですが、遅いのです…。 普通の色々リンク移動するページでは 少々ストレスを感じるという現状です。 ので、フレームで製作すると読み込みが軽いので ストレスが余り無く見やすいページに仕上がったので 満足していたのですが、段々使わない方が良いとされてきているので そろそろ違うプログラムで再構築しようと考えた次第です。

  • ICHI-yan
  • ベストアンサー率33% (45/134)
回答No.2

フレームの様に見せかけるにせもの、フレームもどきはいろいろあります。 「疑似フレーム|擬似フレーム」等で検索すれば、結構ヒットします。 cssだけのもの、JavaScriptも使うもの、PHP等も使うもの、いろいろです。 欠点もいろいろあるので、abacabuさんにあったものから勉強されるといいでしょう。 cssの基本はまずわかっていないとコピペだけではすぐ破綻します。 頑張ってください。

abacabu
質問者

お礼

ご回答ありがとうございます 擬似フレーム色々調べて内容を理解したのですが 全ページにメニューが必要ということで 非常に重たい様ですので今回は使いませんが 大変勉強になりました。 こういう方法もあるのですね!

  • quads
  • ベストアンサー率35% (90/257)
回答No.1

疑似フレーム 擬似フレーム というキーワードで調べてみてください。

abacabu
質問者

お礼

擬似フレーム大変勉強になりましたが 少々重たい様ですので、今回は 使用しない方向になってますが、 PHP,SSI、CMSを勉強しようと思いますが 挫折した際に使用したいと思います 有難うございました

関連するQ&A

  • CSSで「フレーム」のような効果は出せますか?

    遅ればせながら テーブルやフレームを使わず、スタイルシートによる段組レイアウトを勉強しています。 段組レイアウトそのものは何とかできるようになったのですが、 例えば、 ヘッダ(header) 左メニュー(side) 右に内容(contents) といったいわゆる2段組レイアウトの場合 sideのリンクをクリックすると、 contentsだけが別のページにジャンプするという、 フレームのような効果は出せるのでしょうか? ブログのようなCGIにすればいいんでしょうが 更新するのは私ひとりですし、 プログラムを導入するのが面倒で・・・(--;) できればHTMLとCSSだけで実現したいのです。 全画面リンク(_top)にするというテならばありますが その場合、headerおよびsideに配置した画像も、全く同じものなのに再度表示することになって、結果アクセスが重くなりますよね。 あと、アイフレームも極力使いたくないです。 わかりにくい説明で申し訳ありませんが とにかく、以上の方法以外で、 実現できるか出来ないかを教えてください。 私が見ている参考書はレイアウトの事しか載っていなくて・・・ よろしくお願いします。

    • 締切済み
    • CSS
  • cssの段組レイアウトについての質問です

    かなり初歩的なことだと思うのですがこのことばかりがひっかかっています ブックオフの立ち読みでcssの本を読んでいたら 段組レイアウトというのを目にしました。 それはまず下敷きにマージン次にパディング、その上に内容を書く・・・というものでした。 一方ネットで調べてみたら、段組レイアウトのやり方のサイトをよんでみると 「ボックスを左と右にわけたり、上と下にわけたりする」だけで、マージン、パディングのことは書かれてなかったんですよね。(そもそも書くまでもないのかもしれませんが) よく3段組レイアウト2段組レイアウトと聞きますがそれは、立体的にとらえて領域をミルフィーユみたいに入れ子させて乗っけてくからなのでしょうか? それともボックスを平面的に並べることが段組レイアウトなのでしょうか? 理解力が足りずどうもよくわからなくて へんな質問ですいません。回答お願いします。

  • 別フレームの.cssの変更

    こんにちは。 javascriptを使って.cssファイルを切り替えることにかんしてのしつもんです。 左フレームと右フレームがあって、 右のフレームに表示されているページのボタンとか文字とかをクリックすると、関数が呼び出されて、左フレームに表示されているページの.cssファイルを切り替えるようなscriptは、どう記述すれば、いいですか?

  • CSSスタイルシート・疑似フレームでのターゲット指定リンク

     CSSのスタイルシートを使ったフレームページ風のデザインがありますね。(疑似フレーム)  フレームページであれば、ターゲットによってそのターゲットとなったページのみリンク先に飛べますが、CSSのスタイルシートでも再現できますか?  CSSのスタイルシートではidで別れていますが、どうすればできますかね?JavaScriptを利用すればできるという話を聞いたことはありますが、実際どうすればいいのかわかりません。方法とそのことが詳しく記載されたサイトなどを紹介して頂ければ幸いです。

  • CSSで、フレームを使ったようなメニューを作りたいのですが

    HP作り初心者です。ただいま、CSSを使用してのHP作りに挑戦中です。 フレームを使ったHPでよく見るような、画面左側にメニュー、右側に本文という構成にしたいと思っています。 下記「All About」記事を参考に作ってはみたものの、 本文が長いのでスクロールするとメニュー部分が見えなくなってしまいます。 メニュー部分が常に画面上に表示されるように固定したいのですが、どうすればよいのでしょうか。 ご教授よろしくお願いします。 使用ソフト:TeraPadで直打ち。 確認ブラウザ:FireFox3.0.13とIE8.0。 CSS:外部ファイル。A.cssにページレイアウト、B.cssにメニュー部分の情報(文字サイズやリンク関連の装飾など)記載。 メニュー:ulとolタグ使用。 All About・CSSで段組構成 段の背景色が切れないようにする(前) ⇒http://allabout.co.jp/internet/hpcreate/closeup/CU20050328A/ All About・CSSで段組構成 段の背景色が切れないようにする(後) ⇒http://allabout.co.jp/internet/hpcreate/closeup/CU20050401A/ All About・CSSで段組構成 隣の段が下に回りこむのを防ぐ ⇒http://allabout.co.jp/internet/hpcreate/closeup/CU20050307A/

  • ページ切り替えの方法についてです。

    最近まで、フレーム(FRAMESET)でレイアウトを組んでいました。(汗) (参考図) 上フレーム(A.php)name="A" 中フレーム(B.php)name="B" 下フレーム(C.php)name="C" ※ 縦に3段組のレイアウト。 ぞれで、フレームは HTML5 では廃止なり、使用は良くないと言う事で参考図のようなレイアウトを CSSで組んだんですが・・・ 例えば、フレーム使用では 中フレームの B.phpを D.phpページに切り替えをする場合は <a href="D.php" target="B" >Dページ</a> このように target で 簡単に中フレームに D.phpページを表示させる事ができますが CSSでこのような仕組み(ページ切り替え)をする場合はどうやったら良いのでしょうか? イメージとしては・・・ (参考図) 上ヘッダー(#head) 中メイン (#main) 下フッター(#foot) ※ 縦に3段組のレイアウト。 上ヘッダー(#head)の場所で <a href="D.php" >Dページ</a> をクリックした時に 全体をリロードさせずに、中メイン(#main)の場所に、D.phpページを表示したいのです。 できるだけ色んなブラウザに対応する方法で教えて頂けると助かります。 中途半端な知識で対応できず、苦しんでおります。 ちなみに、分かりやすく詳しく教えて頂けると非常に助かります。 もし宜しければ何方か、どうか教えて下さい。宜しくお願いします。  

  • フレームと擬似フレーム

    以前、フレームを使わずにフレームに表示する方法をここでお聞きし、擬似フレームというものがあることを知りました。 CSSとjavascriptを使う擬似フレームと、フレームの場合やはり擬似フレームを使うべきなのか迷っています。 (SSIやphpは使えません) 更新は楽にしたいのと、対応しないブラウザがある→未対応ブラウザ向けにサイトマップをつくる 、という点では一緒かな、と思ったのですが・・・。

    • ベストアンサー
    • HTML
  • htmlフレームのようにcssで作るには?

    現在サイトを作っています。 そこでギャラリーを設けて画像を一覧で載せようと思っています。 左をメニュー画面、右を左メニュー画面から選んだ画像を表示する画面にしたいのですが、 この場合、htmlのframesetを使うのが普通なのでしょうか? フレームを扱わずにCSSで作れる方法があればと思うのですが・・。 CSSのfloatで右左に分けると左のメニュー画面で画像を選びクリックした時に、右画面だけでなく左も含め、画面全体が画像を表示する画面になってしまいます。これを防いで、右のみに画像を表示させる方法はあるのでしょうか? 左で選んで、右に画像を表示させたいです。 どうするのが一番良いのでしょうか、よろしくお願いします。

    • ベストアンサー
    • CSS
  • CSSでどのように記述したらいいでしょうか?

    ホームページ作成中ですが、CSSはあまり詳しくありません。 テンプレートを元に多少いじれる程度です。 下記の富士通トップページのフッター部分のサイトマップ?(個人のお客様、法人のお客様・・・と書いてある部分と、さらにその下の「このサイトについて・・・」という部分)のレイアウトがとても綺麗なので、同じようにレイアウトを組みたいのですが、CSSをどのように書けばいいでしょうか? http://jp.fujitsu.com/

    • ベストアンサー
    • HTML
  • JS 違うフレームのCSSを読み替える方法

    いつもお世話になります。 過去に何度も出ている質問なのですが、 どれをやってみてもうまくいきませんので、 今更ながら質問させていただきます。 JavaScriptを使用して、一つの子フレームのコンボボックスを 操作すると、もう一つの子フレームのCSSが変化する内容を 実現したいと思っています。 様々な過去ログなどを見て、自分なりに修正してみたのですが、 上手くいきません。 コードを記述いたしますので、悪い点などを指摘し、正しい答えを 教えていただければ幸いです。 以下コード ---------------- フレームセット <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title></title> </head> <frameset cols="200,*"> <frame src="menu.htm" id='menu'> <!-- ↑ここは今回は関係なし --> <frameset rows="100,*"> <frame src="top.htm" id="up"> <frame src="page0.htm" name="main1"> </frameset> <noframes> <body> <p>フレームの代替内容</p> </body> </noframes> </frameset> </html> 子フレーム(操作する側) <html> <head> <title></title> <script type="text/javascript" src="common.js"></script> </head> <body> <select onchange="changesytle(value);"> <option value="style.css">標準スタイル</option> <option value="">スタイルなし</option> </select> </body> </html> 子フレーム(操作される側) <html> <head> <link rel="stylesheet" type="text/css" href="style.css" id="mystyle"> <!-- これを操作しようとしています。 --> <title></title> </head> <body> <h1>ここの文字の色が変わります。</h1> </body> </html> common.js function changesytle(cssfile) { main1.document.getElementById('mystyle').href = cssfile; // ↑これがうまくいかない } style.css h1 { color : #ff0000; } --------------------- 以上です。 何卒よろしくお願いいたします。

専門家に質問してみよう