読み込み中...

HTMLクラスを複数使う5つの方法!初心者向け徹底解説

HTMLのクラス属性を複数使う方法が身につく写真 HTML
この記事は約10分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、HTMLのクラス属性を複数使う方法が身に付きます!

●HTMLクラスとは

HTMLのクラス属性(class)は、要素にスタイル(CSS)や振る舞い(JavaScript)を適用する際に使用されます。

クラスは複数の要素に同じ名前を付けることができるため、一括してスタイルや振る舞いを制御することができます。

○複数のクラスを使う理由

複数のクラスを使うことで、要素に異なるスタイルや振る舞いを組み合わせることが可能になります。

これにより、コードの再利用性が向上し、保守性も高まります。

●複数のクラスを使う方法

それでは、複数のクラスを使う方法を5つ紹介します。

○方法1:スペースで区切る

最もシンプルな方法は、class属性の値に複数のクラス名をスペースで区切って記述することです。

<div class="class1 class2 class3">複数のクラスを適用した要素です。</div>

○方法2:クラス名の組み合わせ

別の方法として、複数のクラス名を組み合わせることで、新しいクラスを作成することができます。

この方法では、既存のクラスをベースにして、新しいクラスを作成します。

<!-- HTML -->
<div class="class1 class1-variant">複数のクラスを組み合わせた要素です。</div>

<!-- CSS -->
<style>
  .class1 {
    /* 基本スタイル */
  }
  
  .class1-variant {
    /* 追加スタイル */
  }
</style>

○方法3:CSSセレクタを活用

複数のクラスを適用する際に、CSSセレクタを活用することができます。

これにより、複数のクラスが適用された要素に対して、特定のスタイルを適用することが可能になります。

<!-- HTML -->
<div class="class1 class2">複数のクラスを適用した要素です。</div>

<!-- CSS -->
<style>
  .class1.class2 {
    /* 両方のクラスが適用された要素に対するスタイル */
  }
</style>

○方法4:JavaScriptを利用

JavaScriptを利用して、動的に複数のクラスを適用することもできます。

これにより、イベントなどに応じてクラスを追加・削除することが可能になります。

<!-- HTML -->
<div id="target" class="class1">複数のクラスを適用したい要素です。</div>

<!-- JavaScript -->
<script>
  const target = document.getElementById('target');
  
  // クラスを追加
  target.classList.add('class2');

  // クラスを削除
  target.classList.remove('class1');
</script>

○方法5:カスタムデータ属性を使う

カスタムデータ属性(data-*)を使って、複数のクラスを適用することができます。

この方法では、要素に独自の属性を追加し、JavaScriptやCSSでその属性を利用します。

複数のクラスを適用した要素です。

●各方法のサンプルコード

上記で紹介した5つの方法に関連するサンプルコードを、まとめておきます。

  1. スペースで区切る
<div class="class1 class2 class3">複数のクラスを適用した要素です。</div>
  1. クラス名の組み合わせ
<!-- HTML -->
<div class="class1 class1-variant">複数のクラスを組み合わせた要素です。</div>

<!-- CSS -->
<style>
  .class1 {
    /* 基本スタイル */
  }
  
  .class1-variant {
    /* 追加スタイル */
  }
</style>
  1. CSSセレクタを活用
<!-- HTML -->
<div class="class1 class2">複数のクラスを適用した要素です。</div>

<!-- CSS -->
<style>
  .class1.class2 {
    /* 両方のクラスが適用された要素に対するスタイル */
  }
</style>
  1. JavaScriptを利用
<!-- HTML -->
<div id="target" class="class1">複数のクラスを適用したい要素です。</div>

<!-- JavaScript -->
<script>
  const target = document.getElementById('target');
  
  // クラスを追加
  target.classList.add('class2');

  // クラスを削除
  target.classList.remove('class1');
</script>
  1. カスタムデータ属性を使う
<!-- HTML -->
<div class="class1" data-variant="class2">複数のクラスを適用した要素です。</div>

<!-- CSS -->
<style>
  .class1[data-variant="class2"] {
    /* class1とclass2が適用された要素に対するスタイル */
  }
</style>

<!-- JavaScript -->
<script>
  const target = document.querySelector('.class1[data-variant="class2"]');

  // クラスを追加
  target.classList.add(target.dataset.variant);
</script>

●応用例とサンプルコード

それでは、複数のクラスを使った応用例とサンプルコードを紹介します。

例1: 見出しのスタイルを組み合わせる

<!-- HTML -->
<h1 class="main-title main-title--red">赤い見出しです</h1>
<h1 class="main-title main-title--blue">青い見出しです</h1>

<!-- CSS -->
<style>
  .main-title {
    font-size: 2rem;
    font-weight: bold;
  }
  
  .main-title--red {
    color: red;
  }

  .main-title--blue {
    color: blue;
  }
</style>

例2: ボタンの状態を切り替える

<!-- HTML -->
<button id="myButton" class="btn btn--active">ボタン</button>

<!-- CSS -->
<style>
  .btn {
    /* ボタンの基本スタイル */
  }
  
  .btn--active {
    /* アクティブなボタンのスタイル */
  }
</style>

<!-- JavaScript -->
<script>
  const myButton = document.getElementById('myButton');

  myButton.addEventListener('click', () => {
    myButton.classList.toggle('btn--active');
  });
</script>

例3: タブメニューの切り替え

<!-- HTML -->
<ul class="tab-menu">
  <li class="tab-menu__item tab-menu__item--active" data-target="tab1">タブ1</li>
  <li class="tab-menu__item" data-target="tab2">タブ2</li>
  <li class="tab-menu__item" data-target="tab3">タブ3</li>
</ul>
<div class="tab-content">
  <div id="tab1" class="tab-content__item">タブ1の内容です。</div>
  <div id="tab2" class="tab-content__item tab-content__item--hidden">タブ2の内容です。</div>
  <div id="tab3" class="tab-content__item tab-content__item--hidden">タブ3の内容です。</div>
</div>

<!-- CSS -->
<style>
  .tab-menu__item {
    /* タブメニューの基本スタイル */
  }
  
  .tab-menu__item--active {
    /* アクティブなタブメニューのスタイル */
  }
  
  .tab-content__item {
    /* タブコンテンツの基本スタイル */
  }
  
  .tab-content__item--hidden {
    display: none;
  }
</style>

<!-- JavaScript -->
<script>
  const tabMenuItems = document.querySelectorAll('.tab-menu__item');
  const tabContentItems = document.querySelectorAll('.tab-content__item');

  tabMenuItems.forEach((item) => {
    item.addEventListener('click', () => {
      // タブメニューのアクティブ状態を切り替え
      tabMenuItems.forEach((i) => i.classList.remove('tab-menu__item--active'));
      item.classList.add('tab-menu__item--active');

      // タブコンテンツの表示状態を切り替え
      tabContentItems.forEach((i) => i.classList.add('tab-content__item--hidden'));
      document.getElementById(item.dataset.target).classList.remove('tab-content__item--hidden');
    });
  });
</script>

まとめ

この記事を読めば、HTMLで複数のクラスを適用する方法や、それらを活用した応用例について理解できるようになります。

最適な方法を選び、スタイリングや機能の実装に役立ててください。