10年以上前にフレームを駆使したサイトを自作していた者です。
最近また1からHPを作ろうかと考えていまして、
以前作ったHPを現代らしいレイアウトにする所から入ろうと思っているのですが
疑問のような物が生まれました。
以前作ってあったHPは基本的に、html1枚(以下top)をまずフレームで縦に2分割してあります
(以下左側のページをleft、右側のページをright)
leftに縦並びでコンテンツ1、コンテンツ2…と並べ、クリックをすると内容がrightに表示されます。
つまりHPにどんな内容変更があろうともtopはいじられず、
コンテンツの追加があればleftを修正するだけです
このレイアウト自体は今も崩したくはないのですが、
フレームサイトは様々なデメリットがあり、くわえて現代的ではないので
フレームを使わない構成のサイト作りを考えています
そうすると、leftとrightを統合した1枚のページを
top1、top2…と作り続けることになりますが、
コンテンツ(上記のleftにあたる部分)に変化があった場合、
全てのページ(のleftにあたる部分)を同じように都度いちいち修正するのは途方も無い苦労です。
以前ならleft1ページを修正するだけで済んだ工程です。
皆様がこんな苦労をしているわけはないのでしょうが
どうすればいいかわかりません。
ブログをレンタルしてHPっぽくすれば解決はしますが、当方HPを作成希望しています
最近はwikiやブログの普及によって個人HPを所持する人は少ないように感じます。
現代的なHPは企業などのHPでしか見ませんが、もうそういう時代なのでしょうか?
詳しい方、いろいろ教えてください。大変悩んでいます
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
ご利用のサーバーを借りてらっしゃるISPのマニュアルを確認してください。
もしくは、下記ファイルを上げて確認してください。
★タブは_に置換してあるので戻してください。
★文字コードはUTF-8
★/SSI/header_navigationList.htm
↑
サーバーのルートからのパス・・/SSI/ディレクトリに"header_navigationList.htm"というファイル名で保存するという意味
/index.shtml
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>SHTMLtest</title>
<style media="screen">
<!--
header,section,footer{
margin:0;padding:0;
width:90%;min-width:640px;max-width:1000px;
margin:0 auto;
}
section{
position:relative;
}
section h2,section p,section section{
margin-left:220px;
}
section nav{
position:absolute;
top:0;left:0;
width:200px;
padding:5px;
height:100%;
}
section section{
margin:0;
width:auto;min-width:0;
min-height:400px;
}
/* 色づけ */
body{background-color:gray;}
header{background-color:aqua;}
section{background-color:silver;}
section section{background-color:white;}
section nav{background-color:yellow;}
footer{background-color:orange;}
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
<!--#include virtual="/SSI/header_navigationList.htm" -->
__</nav>
_</header>
_<section>
__<h2>本文</h2>
__<section id="A">
___<h3>項目タイトル</h3>
___<p>この項目の記事</p>
__</section>
__<section id="B">
___<h3>項目タイトル</h3>
___<p>この項目の記事</p>
__</section>
__<section id="C">
___<h3>項目タイトル</h3>
___<p>この項目の記事</p>
__</section>
__<nav>
<!--#include virtual="/SSI/section_contentTable.htm" -->
__</nav>
_</section>
_<footer>
__<h3>A nice footer</h3>
_</footer>
</body>
</html>
/SSI/header_navigationList.htm
___<ul>
____<li><a href="/">TOP</a></li>
____<li><a href="/Books">著書</a></li>
____<li><a href="/Contact">問い合わせ</a></li>
____<li><a href="/Profile">プロフィール</a></li>
___</ul>
/SSI/section_contentTable.htm
__<h2>目次</h2>
__<nav>
___<ul>
____<li><a href="#A">A</a></li>
____<li><a href="#B">B</a></li>
____<li><a href="#C">C</a></li>
___</ul>
__</nav>
サーバー上じゃないと動作しないとの事で、
サーバーを現在契約していなかったので、契約ののち
試行錯誤してました。
お返事が大変遅れて申し訳ございません
サーバーは
https://www.chobi.net/index.phpのfreeプランを契約しています
SSIという物はどうやら対応していないようです
丁寧に教えていただき、ありがとうございました
No.6
- 回答日時:
サーバー上じゃないと動作しないとの事で、
サーバーを現在契約していなかったので、契約ののち
試行錯誤してました。
お返事が大変遅れて申し訳ございません
かなり熟読させていただきましたが
どれも私には難しい物で、試行錯誤しましたが
理解には至りませんでした。申し訳ございません
丁寧に教えていただき、ありがとうございました
No.5
- 回答日時:
SSI(Server Side Include)でも出来ます。
が、PHPより簡単、と言う事では有りませんので・・・。
例えば、質問の例では、left.htmlを共通ファイルにするのなら
<!--#include file="left.html" --> を記述。
この1行をサーバ側で展開するので、アクセスした時点では展開されている。ここはPHPも同じです。
引用側は黙っていると、拡張子は.shtmlにする必要があります。
.htmlのままにしたいなら、.htaccessで以下の記述で制御します。
AddType text/x-server-parsed-html .shtml .html
つまり,SSIもPHPも手間は同じです。
SSIは負荷の関係で許可していないサーバもあるので確認が必要です。
また、left.htmlにはナビゲーションメニューを書く事が多く、
設置するディレクトリを良く考える必要があります。
SSIではカレントディレクトリの上位階層を経由するパス名は指定出来ません。
尤も、SSI、PHP関係なく、絶対パスにして置けば問題有りませんが・・。
いずれにしても、SSIかPHPで共通化部分をインクルードしないと、
とてもメンテに耐えられないと思います。
No.3
- 回答日時:
>>実装はできませんでした
PCローカルでは展開されません。サーバ上で動きます。
>>難しいですね。
PHPで構文作るわけでは無いし、1行入れるだけなんですが・・・。
極めて簡単なので、全サイトの全ページに組み込んで有ります。
<?php include("XXXXX.php"); ?>を組み込んだソースの拡張子は
黙っていると.phpにする必要が有りますが、拡張子を.htmlのままにする方法を使います。
.htaccessというファイルをサーバに設置し、以下を記述します。
AddType application/x-httpd-php .htm .html
サーバー上じゃないと動作しないとの事で、
サーバーを現在契約していなかったので、契約ののち
試行錯誤してました。
お返事が大変遅れて申し訳ございません
結論から言うとやはり実装できませんでした。
丁寧に説明いただいたのに申し訳ございません。
大変知識不足なので仰っている意味を完全に把握できません
表示したい場所に<?php include("left.php"); ?>と記述、
このファイルをmain.htmlとする。
left.htmlを用意して、拡張子をphpに変更、
2つのファイルを同階層に置いてサーバーにアップ、
結果、何も起こらないという事になりました。
よくわからないのでmain.htmlをmain.phpとしてみたりしましたが
そうするとサーバーエラーになりました。
また、.htaccessをアップし、
main.htmlとleft.htmlをアップした場合はサーバーエラーになりました。
ちなみにサーバーは
https://www.chobi.net/index.phpのfreeプランを契約しています
丁寧に教えていただき、ありがとうございました
No.1
- 回答日時:
>>以前ならleft1ページを修正するだけで済んだ工程です。
基本的にはleftの変更が生じた場合は、全ページ変更する必要が有ります。
この手間を解消する為、各ページは、left部分をphpでインクルードします。
<?php include("left.php"); ?>
この1行でleftの内容が展開されてhtmlソースになります。
サーバ内では、各ページのソ-スは<?php include("left.php"); ?>がそのまま入っていますが、ページをアクセスしてサーバから出る時に、通常のhtmlに展開されて出て行きます。
left.phpの内容は、leftに必要なhtml部分だけを記述した物になります。
拡張子は.phpですが、中身はhtmlソースです。
色々な説明サイトがあります。
「php インクルード]で検索して下さい。下は例。
https://msdn.microsoft.com/ja-jp/library/cc29522 …
PHPという技術を初めて知りました。ありがとうございます
いろいろ調べて軽くいじってみましたが実装はできませんでした…
難しいですね。でも知ることができて良かったです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- その他(IT・Webサービス) 無料ドメイン無料サーバでHP作りたい。 知り合いの飲食店のHPを作ってあげたいのですが、その店主には 3 2022/06/05 01:22
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- ノートパソコン HPの保証について 1 2023/08/26 10:17
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html/cssの、navを2段にする...
-
css 横並びのナビゲーションバ...
-
<table>の高さ固定。情報増加時...
-
番号付きリスト(<Ol><Li>・・...
-
html <li>の中の文字一部に色を...
-
htmlの<ol>タグで、数字などを...
-
リストマーカーをボックス内に...
-
CSSでの<ul><li>を使った改行設定
-
list-style-type部分だけ大きく...
-
リストを2つに分割して、それぞ...
-
カルーセルスライダー「slick.j...
-
CSS使用。表のセルの中で、強制...
-
display:table;を多段表示させたい
-
ulタグやliタグの中でbrタグ...
-
複数行にまたがる括弧を表示し...
-
リストの左余白の削除方法
-
HTMLで組織図を作成する方法
-
ひとつの枠(divとかtable)の...
-
マウスアウト後も画像が消えた...
-
ポップアップメニューを表のよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
番号付きリスト(<Ol><Li>・・...
-
liタグの中に<p>タグやら<dl>を...
-
レスポンシブWebデザインでリン...
-
<table>の高さ固定。情報増加時...
-
<ul><li></li></ul>にするメリ...
-
リストの数字のフォントサイズ...
-
HTMLで組織図を作成する方法
-
ulタグやliタグの中でbrタグ...
-
divタグ内のコンテンツが重なっ...
-
画像にリンクを張ると画像がず...
-
複数行にまたがる括弧を表示し...
-
ページを開いているときのリン...
-
html <ul></ul>の並びで一行空...
-
html/cssの、navを2段にする...
-
HTML5のfooterに見出しを付けて...
-
<ul>~</ul>が二つ続くと間に改...
-
htmlの<ol>タグで、数字などを...
-
リンク文字同士の間隔を開ける...
-
CSSでつくったメニューのアニメ...
おすすめ情報