【3つの方法】静的HTMLで共通ヘッダー/フッターを実装する方法 (HTMLのインクルード、JavaScript、SSI)

2024-04-03

静的HTMLで共通ヘッダー/フッターを実装する方法

HTMLのインクルード

これは、最もシンプルで初心者にもおすすめの方法です。共通部分のHTMLコードを別ファイルに保存し、各ページで``のような記述を使って読み込みます。

メリット:

  • 簡単で分かりやすい
  • コード量が減り、管理が楽になる
  • ファイル数が多くなると管理が煩雑になる
  • 編集時にすべてのページを開く必要がある

JavaScriptによるインクルード

JavaScriptを使って、共通部分のHTMLコードを動的に読み込む方法です。

  • ファイル数を減らせる
  • JavaScriptの知識が必要
  • 複雑な処理になる可能性がある

サーバーサイドインクルード (SSI)

サーバー側で共通部分のHTMLコードを埋め込む方法です。

  • サーバーの設定が必要
  • すべてのレンタルサーバーで利用できるわけではない

上記3つの方法のメリットとデメリットを比較して、自分のサイトに合った方法を選びましょう。

その他の注意点

  • 共通ヘッダー/フッターにJavaScriptやCSSを使用する場合は、各ページで読み込む必要があることに注意しましょう。
  • 共通ヘッダー/フッターの内容を変更した場合は、すべてのページに反映されることを確認しましょう。

静的HTMLで共通ヘッダー/フッターを実装するには、いくつかの方法があります。それぞれのメリットとデメリットを理解し、自分のサイトに合った方法を選びましょう。




<h1>サイト名</h1>
<nav>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</nav>

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Index Page</title>
</head>
<body>
  <?php include 'header.html'; ?>

  <main>
    <h1>Index Page</h1>
    <p>これはインデックスページです。</p>
  </main>

  <?php include 'footer.html'; ?>
</body>
</html>

<footer>
  <p>Copyright &copy; 2023</p>
</footer>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Index Page</title>
</head>
<body>
  <div id="header"></div>
  <main>
    <h1>Index Page</h1>
    <p>これはインデックスページです。</p>
  </main>
  <div id="footer"></div>

  <script>
    // header.html を読み込む
    const headerEl = document.getElementById('header');
    fetch('header.html')
      .then(response => response.text())
      .then(html => headerEl.innerHTML = html);

    // footer.html を読み込む
    const footerEl = document.getElementById('footer');
    fetch('footer.html')
      .then(response => response.text())
      .then(html => footerEl.innerHTML = html);
  </script>
</body>
</html>

<h1>サイト名</h1>
<nav>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</nav>

<footer>
  <p>Copyright &copy; 2023</p>
</footer>
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Index Page</title>
</head>
<body>
  <main>
    <h1>Index Page</h1>
    <p>これはインデックスページです。</p>
  </main>

  </body>
</html>

<h1>サイト名</h1>
<nav>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</nav>

<footer>
  <p>Copyright &copy; 2023</p>
</footer>




静的HTMLで共通ヘッダー/フッターを実装するその他の方法

テンプレートエンジンを使うと、HTMLコードと変数を分離して、共通部分のコードを簡単に記述できます。代表的なテンプレートエンジンには、以下のようなものがあります。

テンプレートエンジンを使うには、以下の手順が必要です。

  1. テンプレートエンジンをインストールする。
  2. ヘッダー/フッター用のテンプレートファイルを作成する。
  3. 各ページでテンプレートファイルを読み込み、変数を埋め込む。

CSSフレームワーク

BootstrapやBulmaなどのCSSフレームワークには、ヘッダーやフッターのテンプレートが用意されています。これらのテンプレートを使うと、簡単に共通ヘッダー/フッターを実装できます。

Web Componentsは、HTML、CSS、JavaScriptを組み合わせて、再利用可能なコンポーネントを作成できる技術です。ヘッダーやフッターをWeb Componentとして作成すれば、簡単に共通ヘッダー/フッターを実装できます。

どの方法を選ぶべきかは、サイトの規模や複雑性、開発者のスキルなどによって異なります。


html


HTML、CSS、JavaScriptでIframeを自在に操る

まず、Iframeを埋め込むコンテナとなる要素が必要です。この例では、div要素を使用します。次に、Iframe要素を追加します。height属性は後ほどCSSで設定するため、ここでは省略します。次に、CSSを使用してIframeの高さ設定を行います。...


HTML、CSS、Bootstrapで実現!テーブル内のテキストを水平・垂直方向に自在に配置する方法

HTML、CSS、Twitter Bootstrapを使ってテーブルを作成する際、セル内のテキストの位置を調整することは重要なデザイン要素の一つです。この調整には、text-align クラスと vertical-align クラスが使用されます。...


JavaScriptによるChromeオートフィル機能の無効化

Chromeオートフィル機能は、以下の情報を自動入力できます。氏名住所電話番号メールアドレスクレジットカード情報これらの情報は、過去にウェブサイトのフォームに入力した内容に基づいて保存されます。Chromeオートフィル機能無効化の利点と欠点...


HTML, CSS, CSS Gridで実現するエレガントなグリッドラッピング

CSSグリッドラッピングを有効にするには、以下の方法があります。グリッドコンテナーに display: grid プロパティを設定する: これは、要素をグリッドコンテナーに変換し、グリッドレイアウトを適用するための基本的な手順です。グリッドアイテムに grid-template-columns プロパティを設定する: このプロパティは、グリッドの列の数を定義し、各列の幅を指定します。列の幅が固定の場合、アイテムが折り返されるポイントが決まります。...


JavaScriptとHTMLでGoogleドライブの画像を表示する

このチュートリアルでは、JavaScriptとHTMLを使用してGoogleドライブの画像を表示する方法を解説します。必要なものGoogleドライブアカウント画像ファイルテキストエディタ手順Googleドライブで画像の共有リンクを取得 Googleドライブで画像ファイルを開きます。 右上の共有ボタンをクリックします。 「リンクを取得」を選択します。 「表示のみ」を選択します。 リンクをコピーします。...