template要素で動的HTMLをもっと効率化!JavaScriptでの応用テクニック集
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
今回はWeb制作の現場で地味だけどめちゃくちゃ便利な「<template>要素」について、応用的な使い方をご紹介します。

「コンポーネントのようにHTMLを使い回したい…」
「リスト表示やカード生成を効率よく管理したい…」

そんなときに活躍するのが、HTMLの<template>要素 × JavaScriptの組み合わせです。


<template>要素とは?

<template id="card-template">
  <div class="card">
    <h3></h3>
    <p></p>
  </div>
</template>

このように定義された <template> 要素は、HTMLとしてDOMに読み込まれますが表示されません。
しかも、中身はJavaScriptから動的に複製・加工が可能。
VueやReactのようなコンポーネントフレームワークを使わなくても、ちょっとした再利用に重宝します。

主な特徴

  • ブラウザに描画されないため初期表示に影響なし
  • JavaScriptで .contentを使って複製・変更できる
  • JavaScript内でDOM構築を一から書かずに済む

基本的な使い方:カードの複製

次のように、カードのテンプレートをHTML側に定義し、JavaScriptで複製・挿入します。

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

これだけで、HTMLを複製しながら内容だけ差し替えるUIが完成します。
実用性も高く、読み込み速度にも優れています。


スポンサーリンク

応用テク:ユーザー入力からカードを生成

次に、ユーザーがフォームから送信した内容をもとに、<template> を使ってリアルタイムに表示する例です。

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.


VueやReactに頼らずとも、テンプレートを用いた軽量なリアクティブUIが実現可能です。


注意点:templateはJS必須

<template> 要素は、HTMLとして読み込まれてもDOMに表示されません。
また、CSSによる制御や :hover などのスタイル適用もできません。

  • JavaScriptで .content.cloneNode(true) を使って展開する
  • VueやReactのようにテンプレート機能をラップしない
  • JavaScriptが無効な環境では表示されない

という前提を理解して使うことが重要です。


まとめ

<template> 要素は、軽量かつ柔軟にUIを複製・管理できる便利な仕組みです。
特に「似た構造を何度も出力したい」「JavaScriptで生成するHTMLの見通しをよくしたい」という場面で活躍します。

  1. テンプレートHTMLをあらかじめ埋め込める
  2. JavaScriptで動的に複製・内容の変更が可能
  3. フレームワークがなくても効率の良いDOM構築ができる

VueやReactを導入するほどではないけど、UIをもっと柔軟に扱いたい方に最適な技術です。
あなたの制作に、ぜひ取り入れてみてください!

 

satokotadesignキャンペーン実施中!

浜松市の飲食店限定|ホームページ無料作成サービス
ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事