• ベストアンサー

擬似フレームとPHP

今までHTMLとCSSで主にホームページを作ってきたのですが、最近メニューナビをどうにかして常に表示させとくことは出来ないだろうかと思い(フレームのような感じで)色々調べて擬似フレームという方法があるというのを知って作ってみたのです。 で、また最近PHPをちょっと勉強しだして、ほんとーに、かじり程度しか分かってないのですが、擬似フレームでナビ部分をincludeで呼び出せば、すごく便利だなぁ、と思ったわけですが。 一般的にあまり普及してない印象があります。 私も調べるまで擬似フレームというのがあることさえ知らなかったので(CSSも未熟なもので・・)。 まぁ、PHPの使えないサーバもあるので、使われないのかも知れないのですが。 そこで気になったのが、擬似フレームとPHPを使うことによって、なにかデメリットってあるのでしょうか? メンテナンス作業で考えるとフレームと変わりないくらいに楽だなぁ、と関心してしまったもので。 ちょっと気になったことで、特に切羽詰まった事ではないのですが・・。 少しでも関心があればよろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

擬似フレームというのがCSSのoverflowのことならPHPとはあまり関係ないかと。 メニューなどをincludeして汎用的に利用するのは、擬似フレームに限ったことではありませんが そのことについてのデメリットなら ・全てのページをPHPにする必要がある ・その分WEBサーバの負荷が増加する

buru-bon
質問者

お礼

お返事が遅くなって申し訳ありません。回答ありがとうございました。 http://desperadoes.biz/style/p_frame.php 参考にしたサイトさんです。 擬似フレームにメニューをincludeで呼び出してるようです。 includeするのは擬似フレームに限ったことではありませんが、 今回は上記の参考サイトさんのように常にメニューをフレームのように画面に表示させて置きたいと思って調べた結果 擬似フレームという方法を知って、それからメニュー部分だけをincludeして呼び出せばフレームと同じような感じで メンテナンスが進められると思ったもので『擬似フレームとPHP』ということだったのですが。 あまり使われているサイトを見ないので、何かデメリットがあるのかなぁ、と思って質問したのです。 >全てのページをPHPにする必要がある >その分WEBサーバの負荷が増加する ・・・そうですね・・これの問題は全てのページをPHPにしないといけないことですね。 自分の作っているサイトはあまりページ数が多くなかったので深く考えておりませんでした。 負荷が増加するのは問題ですね・・自サーバでないので迷惑をかけてしまいますね。 ありがとうございました。検討してみます。

その他の回答 (1)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

擬似フレームというのが何を指すのか良く分かりませんが、 wikiでいう左側のリンクと解釈して話します。 テンプレートやデザインパターンについて勉強されるとよろしいと思います。 具体的にはsmartyというツール、MVCという制作手法など。 デメリットとしては、No.1の方の指摘に加えて ・大人数プロジェクトの際は「そういうものだ」という認識を全員が持った上で開発を行う必要がある ・画像などをメニューに張ると、リクエストのたびに受信され地球環境に優しくない ・PHPだけでなくcssやHTMLのエラーにかなり敏感になる必要性がある ・jsを使ったときidの競合が起きても気づきにくい ・コンテンツの真中でメニューを選択したいのにリンクがそこにないという状態に陥りやすい こんなとこですかね。 エンドユーザさんにしてみればどちらも一長一短ですので、 適材適所を考えて構築すると良いと思います。

buru-bon
質問者

お礼

擬似フレームという言葉はあまり一般的ではないんですね・・。 フレームのようにスクロールしてもメニューが画面外に行かないようにならないかと思って調べているうちに CSSでのボックスの重なりを利用してスクロールさせないボックスとスクロールするボックスを組み合わせて、 メニュー部分は常にスクロールされないボックスにすることでフレームのように見せるページの事を擬似フレームといわれてるんだと理解しています。 wikiはメニュー部分も一緒にスクロールされてしまうので、たぶん違うのだと思うのですが。 『擬似フレーム』で検索した際にたくさん引っかかったので一般的に言われているものだと思っていました。 説明不足で申し訳ありませんでした。 >大人数プロジェクトの際は「そういうものだ」という認識を全員が持った上で開発を行う必要がある そうですね、開発者全員が理解しておかないといけませんね。 現在は1人で作業してますのでいいですが、引継ぎなどが発生するとまずいですよね。 >画像などをメニューに張ると、リクエストのたびに受信され地球環境に優しくない これはNo.1の方の方にも書かれてましたがサーバ負担が余計にふえてしまいますね。 あと毎回毎回読み直しになるとユーザさんの環境もよくありませんね。 >PHPだけでなくcssやHTMLのエラーにかなり敏感になる必要性がある ここは微調整していくしかありませんね。 >jsを使ったときidの競合が起きても気づきにくい jsはまだよく分かりません・・勉強不足です。 今回のページでは使う予定がないのでいいかもしれませんが 使うときは注意しないといけませんね。 >コンテンツの真中でメニューを選択したいのにリンクがそこにないという状態に陥りやすい これを解消するために擬似フレーム(と表記しておきます)という形にしようと思ったんです。 >テンプレートやデザインパターンについて勉強されるとよろしいと思います。具体的にはsmartyというツール、MVCという制作手法など。 もともとデザイナーで飛び火してコーダーも担ってるという風になってしまったのでまだまだ勉強不足ですね。ちょっと色々勉強していきたいと思います。 色々調べている最中ですが、理解すれば作業もスムーズに進められそうですね。 長々と申し訳ありません。丁寧な回答ありがとうございました。

関連するQ&A

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

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

    • ベストアンサー
    • HTML
  • CSSの擬似フレームでのリンク方について

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

    • ベストアンサー
    • HTML
  • フレームを自動生成

    よくフレームの代わりにPHPのincludeを使って、擬似的なフレームを作る方法がありますが、そうではなく、フレームのように2つのファイルを一画面に表示させるようなことをPHPで出来ないでしょうか? 全ページにincludeだと、ページレイアウトをかえるときにめんどうかな、と思ったので…。

    • 締切済み
    • PHP
  • CSSでフレーム

    ご存知の方いらっしゃいましたらお教えください。CSSを利用してフレームのような動作をさせるにはどうすればいいのでしょうか?たとえばフレームにおいて仮にナビを左に、メインページを右にしてある場合、ナビのリンクのアクションがメインフレームへ該当するHTMLファイルを呼び出しますが、CSSでこの動作をさせることが出来るのでしょうか。参考になるHPなどございましたらお教えください。よろしくお願いします。

  • HTML、CSS、PHPに便利なテキストエディタは

     今はHTMLとCSSを書くのに「Crescent Eve」というソフトを使っています。  タグを補完してくれたり便利で気に入ってるのですが、残念ながらPHPには対応していないようです。  そこで、HTMLやCSSはもちろん、PHPまで対応しているテキストエディタがあれば良いなと思っているのですが、現段階で一番良いと思えるものがあれば教えていただけませんか?  一番欲しい機能はタグの補完です。  検索してみたのですが、数年前の紹介記事だったり、最近のもので一番良いエディタが何かいまいちわかりません。  よろしくお願いいたします。

  • 素人です。設定用phpファイルから値を読み込むには

    PHPの知識はありませんが、HTMLとCSSとインクルードのphpだけが分かります。 文法はわかりませんが、config.php等に $number="100"  等で設定をしておき、それを別のHTML(拡張子は.php)で width="$number" のように代入したのですが、方法を教えてください。

    • 締切済み
    • PHP
  • PHPでHTML文を外部読み込みする場合

    HTML+CSSを記述したPHPファイル(a.php)に、HTMLを記述したHTMLファイル(b.html)をincludeしたいと考えています。 a.phpに読み込まれるb.html部分にはa.phpで定義したスタイルを適用したく無いのですが、こういう条件を満たすにはどのような方法があるでしょうか?

    • ベストアンサー
    • PHP
  • PHP→JavaScriptへの書き換え

    以下のような、フレームページのスタイルシートを変更するプログラムをPHPで書いたのですが、複数ある設置先サーバーの1つがPHP・CGIなどに対応していないため、JavaScriptに書き換える必要が出てきました。 そこでお聞きしたいのですが、以下のプログラムをJavaScriptに書き換えるにはどう記述すればいいでしょうか? JavaScriptは本のサンプルを見ながらいじった程度なので、記述にいまいち自信がありません・・・。 【index.html】フレーム定義ページ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <script type="text/javascript"> <!-- if( self != top ) { top.location = self.location; } //--> </script> <title>CSSチェンジャー</title> </head> <frameset rows="40,*"> <frame name="top" src="top.php" scrolling="NO"> <frameset cols="17%,*"> <frame name="left" src="menu.php"> <frame name="right" src="main.php"> </frameset> <noframes> <body> <p>このページを表示するには、フレームをサポートしているブラウザが必要です。</p> </body> </noframes> </frameset> </html> 【main.php】中央フレームページ <?php error_reporting(~E_NOTICE); if($_COOKIE["css"]==""){ $css="<link rel=\"stylesheet\" type=\"text/css\" href=\"aqua.css\">"; }else{ $css.="<link rel=\"stylesheet\" type=\"text/css\" href=\""; $css.=$_COOKIE["css"]; $css.=".css\">"; } echo <<<HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> $css <title></title> </head> <body> <h3>CSSチェンジャー</h3> <p>下から選んでください。</p> <form action="" method="post"> スタイル: <select name="cssselect"> <option value="blue" selected>ブルー系</option> <option value="red">レッド系</option> <option value="yellow">イエロー系</option> </select> <input type="submit" name="sub" value="変更"> </form> </body> </html> HTML; if(isset($_POST['sub'])){ $timeout = time() + 30 * 86400; setcookie("css",$_POST['cssselect'],$timeout,'/~********/','www.*****.ne.jp'); header("location:index.html"); exit(); } ?> 【menu.php】【top.php】左フレーム/上フレームページ <?php error_reporting(~E_NOTICE); if(!isset($_COOKIE["css"])){ $css="<link rel=\"stylesheet\" type=\"text/css\" href=\"aqua.css\">"; }else{ $css.="<link rel=\"stylesheet\" type=\"text/css\" href=\""; $css.=$_COOKIE["css"]; $css.=".css\">"; } echo <<<HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> $css <title></title> </head> <body> <p>フレームページ</p> </body> </html> HTML; ?> indexはすでにJavaScriptで書いてあるので大丈夫だと思いますが・・・。

    • 締切済み
    • PHP
  • PHPとHTMLとCSSの関係性について

    PHP初心者です。 PHPとHTMLとCSSの関係性について教えてください。 今回、サイトをHTMLからPHP化しようと思っています。 (サイト管理が楽になると思ったため) 今作ってあるサイトは、外部CSS+XHTMLで作成していますが、 そのHTML内に <? include"../../side.html";?> とPHPの実行を記述した場合、 別ページとして用意した ../../side.html は外部CSSにデザインが左右されるのでしょうか? それとも ../../side.html の中でデザインを全て記述しなければいけないのでしょうか? こういう基本的過ぎる内容はどこのサイトにも初心者でも分かるように詳しくは書いてありませんでした。 よろしくお願いします。 ---------------- 48時間ぶっ続けで、色々調べてみました。 そして、PHPはサーバー側での処理でHTMLを吐き出すらしい、といことがわかりました。 (確認作業で自己PCをサーバーにするとかの必要も...) CSSとHTMLは確かブラウザ側での処理ですよね? 違っていたら教えてください。 もしそうなら、 普通に1ページの外部CSS+HTMLを作る→PHPで切り張りする これだけで、あとは切り取ったページの更新だけで全ページに更新を表示できるし、PHPって便利だなーと思います。 基本的な事が全く分かっていないおバカさんですが、よろしくお願いします。

  • PHPを習得するべきか

    HTML/CSSを学んでいます。さらにPHPを習得するべきか悩んでいます。 (1)SQLなどのデータベースとの連携等と、よく書いてありますが、具体的にはどのようなページなのでしょうか? (2)またアドレスにphpとついてはいますが、データベースとの連携を感じさせないものもありますが、どういった役割をしていると考えられますか? (3)上記、またはそれ以外の方法で、それらを実現する方法はあるのでしょうか?また、メリット・デメリットを教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう