重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

フレームの代わり、どうしたら?
*****************
社内向けのホームページ担当です。
ずっとメンテナンス程度の更新しかしていなかったのですが、久し振りに新しいコンテンツを増やす事になりました。

ホームページビルダー8から16にアップデートしたら、テンプレートが豊富でビックリ。調べてみると、もうフレームでページ作りって古いんですね…

社内イントラで「検索機能」は使われてないのですが、せっかくなのでフレームを使わない方法でフレームページのような見映えにしたいです。

CSSも使ってなかったのでテンプレートの解読&参考書で勉強を始めましたが、複数ページに点在する目次欄を共通化する方法が分かりません。


/*やりたいこと/*
・トップページの目次欄には部署名24件がぶら下がり、それぞれの部署ページにも同じ目次欄を付ける。
・部署の増減があると、全ての目次欄で部署名の改編が必要。
・ひとつのファイルの目次欄を修正すると、全てのページで目次欄が更新されるようにしたい。


/*質問/*
・HTML+CSSで、フレームページのように常に共通の目次欄を使用する方法はありますか?javascriptも勉強し始めたばかりですみません(>_<)

A 回答 (5件)

フレームの問題は今更ですので繰り返しません。

ただ、とても古い技術で特定のページを表示した状態でブックマークしたり、他人に伝えられないのが最大の欠点で、社内ネットとしても最大の問題点となります。
Q:たくさんのページに同じ内容のコードが含まれている。
 いちいち書き換えるのは非現実的

 通常は、とても古い--枯れた技術であるSSI---Server Side Includes( https://ja.wikipedia.org/wiki/Server_Side_Includes )を利用する方法で、HTTPサーバーは標準で持っています。
例えば、HTML内に
<!--#include virtual="/SSI/header_navigationList.htm" -->
というコードがあれば、その部分に/SSI/header_navigationList.htmにそのまま書き換えて提供してくれますから、/SSI/header_navigationList.htmを書き換えれば、そのコードの埋め込んであるすべてのページが書き換わります。
 フレームだけでなく、新着情報とか、重要な連絡事項など。。
<!--#include virtual="/SSI/news.htm" -->
<!--#include virtual="/SSI/footer_doctypeInfo.htm" -->
とか、

Q: フレームに変わって、同様な利便性を持たせるには・・
 フレームに変わるプレゼンテーションは、下記のように
★タブは_に置換してあるので戻す。
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
 のDATA(右上)で検証ずみのHTML5です。
★タブレットやスマホでも利用できるはず。
<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA">
<style media="screen">
<!--
body{background-color:gray;}
header{width:100%;height:200px;position:fixed;top:0;left:0;z-index:100;}
header nav{top:200px;width:200px;position:fixed;}
section{margin:200px 0 0 200px;position:relative;}
section h2,
section section{margin:0 200px 0 0;min-height:150px;}
section aside{position:absolute;top:0;right:0;width:200px;height:100%;}
footer{margin-left:200px;}
h1,h2,h3,h4{margin:0;line-height:1.8em;}
/* 色 */
header{background-color:aqua;}
section{background-color:silver;}
section section{background-color:white;}
footer{background-color:lime;}
section aside{background-color:fuchsia;}
-->
</style>
<style media="screen and (max-width: 640px)">
<!--
_section h2,
_section section{margin:0;}
_section aside{position:static;width:auto;height:auto;}
_section aside{background-color:red;}
-->
</style>

</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<h2>A smaller heading</h2>
__<p>
__</p>
__<section>
___<h3>A smaller heading</h3>
___<p>
____項目記事・・・
___</p>
__</section>
__<section>
___<h3>A smaller heading</h3>
___<p>
____項目記事・・・
___</p>
__</section>
__<section>
___<h3>A smaller heading</h3>
___<p>
____項目記事・・・
___</p>
__</section>
__<aside>
___<h3>Something aside</h3>
__</aside>
_</section>
_<footer>
__<h3>A nice footer</h3>
__<p>本文と直接関係ない補足記事など</p>
_</footer>
</body>
</html>
    • good
    • 0

案1. Web ブラウザの機能で目次を挿入


各ページに <script src="/toc_part.js"></script> を仕込む。
toc_part.js に目次欄を生成する処理を書く。

案1その2
toc_part.js が AJAX 呼び出しをして、
toc_part.html を読み出して、
そのままページ内に挿入する。
参考)
https://developer.mozilla.org/ja/docs/AJAX

案1その3
toc_part.js が AJAX 呼び出しをして、
toc_part.json を読み出して、
データをもとに目次欄を生成する処理を書く。
参考)
https://developer.mozilla.org/ja/docs/Web/JavaSc …

案2. サーバー側の機能で目次を挿入
HTTP サーバーに SSI の機能を持たせ、
各ページに SSI を埋め込み、
toc_part.html をページ内に挿入する。
参考)
http://httpd.apache.org/docs/2.4/howto/ssi.html
https://msdn.microsoft.com/ja-jp/library/ms52594 …

案3. 公開前に目次を挿入
各ページに <!-- include src=toc_part.html -->目次欄<!-- /include --> を挿入
スクリプトを組み、上記の部分に toc_part.html を挿入する処理を行う。
変更があった場合は、スクリプトで全ページを更新する。
参考)
https://www.google.co.jp/search?q=%E3%83%86%E3%8 …
    • good
    • 1

解決する方法は、dreamweaverを買ってもらってライブラリ機能を使用することです。

メニューなどの各ページ共通部分を1か所で管理できます。ライブラリ化したHTMLソースの共通部分を編集すると各HTMLファイルに自動的に反映してくれます。

HTML+CSSでのデザインや配置は別問題としてあって、それぞれ覚える必要がありますがdreamweaverではCSSをGUIから操作できるインターフェースがあります。

////////////

もっとも効率的な更新ができる方法としてはCMSの利用というのもあります。これはサーバーにCMSのシステムをインストールする必要がありますのでサーバー管理者に相談する必要があるとおもわれます。


///////////

いずれにしてもいろいろな知識を必要とし、苦労することになりますので、現状維持が一番よろしいかとおもわれます。
    • good
    • 0

HTML+CSSはかなり難しいです。


   
フレームのような管理のしやすさ(メニューは1ファイル)で尚、フレームではない作り方としてSSI(Server Side Include)という方法もあります。
私はこれで管理しています。
https://allabout.co.jp/gm/gc/23773/
    • good
    • 0

社内向けであればフレームでOK!


フレームの欠点は「一意のページを表示できない」という事ですが、作るにはとても便利です。
社内向けだけであれば作成に時間が掛からないフレームで一向に構わないでしょう。
    • good
    • 1
この回答へのお礼

早速ありがとうございます!
フレーム推し嬉しいです(*^^*)

補足ですみません。
まだ先の話ですが、社内イントラ再構築の話があり、シェアポや何らかのポータル導入の話があがってます。なので、この機会にCSSデビューはするつもりでいます。

納期が間に合わないようならフレームで!でも出来れば新しい技術にもチャレンジして、使い勝手を確認したいです。

引き続き、お力添えのほどよろしくお願いします(>.<)

お礼日時:2016/12/27 19:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!