HTML(32)HTML5新要素とCSS3機能

HTMLとCSSでページを彩ろう HTML
HTMLとCSSでページを彩ろう

 

前回はドロワーメニュー(ハンバーガーメニュー)について紹介しました。

Javascript(41)ドロワーメニュー(ハンバーガーメニュー)の作成
今回は、ドロワーメニュー(ハンバーガーメニュー)の作成について紹介します。javascriptの代表的な使用法になります。

今回はHTML5新要素とCSS3機能について紹介していきます。

【もっと詳しく知りたい人は是非これを読んでください!!】

1冊ですべて身につくHTML&CSSとWebデザイン入門講座 /SBクリエイティブ/Mana(単行本)

価格:747円 (2024/12/16 23:17時点) 感想(2件)

 

 

HTML5新要素とCSS3機能で作るインタラクティブコンテンツ

本記事では、HTML5とCSS3の最新技術を活用して、動的でインタラクティブなWebコンテンツを作成する方法を解説します。
videoaudiocanvasdetails/summaryといったHTML5の新要素や、CSS3のアニメーショントランジションなどを用いて、実践的なインタラクティブ機能を実装します。


1. HTML5の新要素を活用する

HTML5では、従来のHTMLに加えて、さまざまな新しい要素が導入されています。これらの要素は、Webページの構造や意味をより明確にし、SEOやアクセシビリティの向上にも寄与します。以下に、いくつかの新要素を紹介します。

1.1 videoとaudio

videoaudio 要素を使えば、ブラウザ上で直接動画や音声を再生できます。
例えば、以下のコードは動画を表示する方法です。


<video controls width="600">
  <source src="movie.mp4" type="video/mp4">
  お使いのブラウザはvideoタグに対応していません。
</video>

1.2 canvas

canvas 要素は、動的なグラフィックスやゲーム、データビジュアライゼーションなどに利用されます。
以下は、canvasを使って簡単な図形を描く例です。


<canvas id="myCanvas" width="400" height="300" style="border:1px solid #ccc;"></canvas>

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(50, 50, 100, 100);

1.3 detailsとsummary

detailssummary 要素を使うと、折りたたみ可能なコンテンツを簡単に作成できます。
例として、以下のコードはFAQのような形式で使えます。


<details>
  <summary>質問:HTML5って何?</summary>
  HTML5は、最新のHTML仕様で、より意味のあるマークアップが可能です。
</details>

2. CSS3でインタラクティブなデザインを実現する

CSS3は、Webデザインに動きを取り入れるための強力なツールです。
ここでは、トランジション、アニメーション、グラデーション、そしてレスポンシブデザインの基本を見ていきます。

2.1 トランジションとアニメーション

トランジションを使えば、プロパティの変化をスムーズに見せることができます。アニメーションでは、複雑な動きを実現することが可能です。


/* トランジションの例 */
.button {
  background-color: #007BFF;
  transition: background-color 0.3s ease;
}
.button:hover {
  background-color: #0056b3;
}

/* キーフレームアニメーションの例 */
@keyframes slideIn {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}
.animated-box {
  width: 100px;
  height: 100px;
  background-color: #E74C3C;
  animation: slideIn 0.5s forwards;
}

2.2 グラデーションとシャドウ

CSSグラデーションやシャドウを使うと、要素に奥行きや動きを与え、視覚的に魅力的なデザインに仕上げることができます。


/* 線形グラデーションの例 */
.gradient-box {
  width: 200px;
  height: 200px;
  background: linear-gradient(45deg, #f06, #4a90e2);
}

/* ボックスシャドウの例 */
.shadow-box {
  width: 200px;
  height: 200px;
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

3. HTML5とCSS3を連携したインタラクティブコンテンツの実装例

ここでは、HTML5とCSS3の機能を組み合わせた実践例として、画像ギャラリーや簡単なアニメーション効果を実装する方法を紹介します。
例えば、画像ギャラリーでは、画像をクリックすると拡大表示するモーダルウィンドウを実装できます。

3.1 画像ギャラリーとモーダルウィンドウ


<div id="gallery">
  <img src="https://kamechannel.com/images/sample1.jpg" alt="サンプル画像1" class="gallery-img">
  <img src="https://kamechannel.com/images/sample2.jpg" alt="サンプル画像2" class="gallery-img">
  <img src="https://kamechannel.com/images/sample3.jpg" alt="サンプル画像3" class="gallery-img">
</div>

<div id="modal" class="modal">
  <span id="closeModal" class="close-modal">×</span>
  <img id="modalContent" class="modal-content" src="" alt="拡大画像">
</div>

/* ギャラリーのスタイル */
#gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}

.gallery-img {
  width: 100%;
  cursor: pointer;
  transition: transform 0.3s ease;
}
.gallery-img:hover {
  transform: scale(1.05);
}

/* モーダルウィンドウのスタイル */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.8);
  justify-content: center;
  align-items: center;
}
.modal-content {
  max-width: 90%;
  max-height: 90%;
  border: 5px solid #fff;
  border-radius: 5px;
}
.close-modal {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #fff;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

// JavaScriptによるモーダル機能の実装例
document.addEventListener("DOMContentLoaded", function() {
  const modal = document.getElementById("modal");
  const modalContent = document.getElementById("modalContent");
  const closeModal = document.getElementById("closeModal");
  const galleryImages = document.querySelectorAll(".gallery-img");
  
  galleryImages.forEach(img => {
    img.addEventListener("click", function() {
      modal.style.display = "flex";
      modalContent.src = this.src;
    });
  });
  
  closeModal.addEventListener("click", function() {
    modal.style.display = "none";
  });
  
  // モーダル外クリックで閉じる
  modal.addEventListener("click", function(e) {
    if (e.target === modal) {
      modal.style.display = "none";
    }
  });
});

4. レスポンシブデザインの工夫

モバイルやタブレットなどの小さな画面でも快適に閲覧できるように、メディアクエリを使ってレイアウトを最適化します。
例えば、画像ギャラリーの列数を画面幅に合わせて調整することで、どのデバイスでもバランスの取れた表示が可能です。


@media (max-width: 600px) {
  #gallery {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}

5. まとめと今後の展望

本記事では、HTML5新要素とCSS3機能を組み合わせ、インタラクティブな画像ギャラリーとモーダルウィンドウの作成方法を詳しく解説しました。
基本のHTML構造、CSSによるグリッドレイアウト、ホバー効果、そしてJavaScriptでの動的コンテンツ生成とモーダル表示を学ぶことで、初心者から中級者へのステップアップが可能となります。
今後は、さらに応用例として、画像のスライドショー、フィルタリング、そしてレスポンシブなデザインの強化などに挑戦してみてください。


6. 参考リンク

以上がHTML5新要素とCSS3機能の紹介になります。
次回はCSS Gridについて紹介します。