- 締切済み
CSSで「フレーム」のような効果は出せますか?
遅ればせながら テーブルやフレームを使わず、スタイルシートによる段組レイアウトを勉強しています。 段組レイアウトそのものは何とかできるようになったのですが、 例えば、 ヘッダ(header) 左メニュー(side) 右に内容(contents) といったいわゆる2段組レイアウトの場合 sideのリンクをクリックすると、 contentsだけが別のページにジャンプするという、 フレームのような効果は出せるのでしょうか? ブログのようなCGIにすればいいんでしょうが 更新するのは私ひとりですし、 プログラムを導入するのが面倒で・・・(--;) できればHTMLとCSSだけで実現したいのです。 全画面リンク(_top)にするというテならばありますが その場合、headerおよびsideに配置した画像も、全く同じものなのに再度表示することになって、結果アクセスが重くなりますよね。 あと、アイフレームも極力使いたくないです。 わかりにくい説明で申し訳ありませんが とにかく、以上の方法以外で、 実現できるか出来ないかを教えてください。 私が見ている参考書はレイアウトの事しか載っていなくて・・・ よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
いわゆるAjaxを使えば、ページの中の一部(よく使われるのはDIVタグの内部やテーブルの一部)を変更させることが出来ますので、 それをつかってフレームのリンクをシミュレートできますが、 Ajaxをまともに使えるブラウザは、JavaScriptが使えるブラウザの中でもごく新しいものだけです。 擬似的にフレームっぽく見せることは出来ても フレームの「リンク」をシミュレートする方法は、Ajax以外の方法ではないと思います。 *Ajax JavaScriptの機能の一つ。ページ移動やポップアップウインドウ、IFRAMEを使わずに、サーバーとの通信を行う。 Ajaxを使わなくても、別の方法で同様の通信を行うことは可能ですが、いずれにしてもJavaScriptが必須になります。 > 確かに本来の意図と異なるテーブルやフレームの使い方は嫌われますが、それらが全て悪と言うわけではなく積極的に使うべき局面もありますので・・・・ 私もテーブルやフレームの使用は推奨とは言いませんが、使うべき所は使うべきだと思います。
- sutead_02
- ベストアンサー率46% (26/56)
一度キャッシュに読み込まれた画像などは、わりと早く表示されますので、最初だけ読み込みに時間がかかる程度で、共通の部品を使うページは以後早めに表示されると思うのですが。 私のホームページにも、左のメニューはそのままで、右側の表示のみが切り替わるようなギミックを設けていますが、それはレイヤーを使い、JavaScriptで左メニューのボタンを押さえると、レイヤーの表示・非表示が入れ替わるように作っています。 この場合も、最初に多くの部品を読み込むので時間がかかります。 スタイルシートやHTMLタグのみでこれを実現するのは無理だと思います。 一層のこと、FLASHコンテンツにしてしまうのも手ですね。
お礼
結局1ページ目はCSSで作って、 2ページ目以降は大人しくフレームを使うことにしました。 参考になりました。ありがとうございました。
無理です。 あ。Javascript等を使う手もあるかもしれませんが・・・おそらく質問者様の意図とは違うと思うので却下しておきます(笑)。 最大限努力しても全ページにナビゲーションを配置して擬似的にそう見せるしか方法はありません。 >その場合、headerおよびsideに配置した画像も、全く同じものなのに再度表示することになって、結果アクセスが重くなりますよね。 その場合結局これは逃れられません。 ところで質問者様は何故テーブルやフレームを使いたくないか教えてください。確かに本来の意図と異なるテーブルやフレームの使い方は嫌われますが、それらが全て悪と言うわけではなく積極的に使うべき局面もありますので・・・・ 検索してたら色々とまとまってそうなページがあったので貼り付けておきます http://car.s35.xrea.com/better/frame.php#notneed http://car.s35.xrea.com/better/frame.php#notneed ユーザーやブラウザにlink要素の概念が広まればページ内に配置する必要もないんですが...まだまだ道のりは遠そうです。
お礼
CSSを使いたい理由は勉強がてらですね。テーブルとフレームならば簡単に実現できることはわかっているので、あえて・・・ 結局1ページ目はCSSで作って、 2ページ目以降は大人しくフレームを使うことにしました。 参考になりました。ありがとうございました。
お礼
う~ん、ジャバスクリプトはフレームとテーブル以上に使いたくないですね・・・今別のページで導入しているスクリプトもオペラで正常に動作しなくて、外そうかと思っているくらいなので。 結局1ページ目はCSSで作って、 2ページ目以降は大人しくフレームを使うことにしました。 参考になりました。ありがとうございました。