CodeGym /コース /Frontend SELF JA /インタラクティブエレメント

インタラクティブエレメント

Frontend SELF JA
レベル 10 , レッスン 6
使用可能

6.1 <details> タグ

HTML5は、インタラクティブな折りたたみブロックを作成するための<details><summary>エレメントを追加しました。 これらのエレメントは、ユーザーがコンテンツを展開したり折りたたんだりすることを可能にし、ユーザー体験を向上させ、 ウェブページでのスペースを節約します。

<details>エレメントは、展開または折りたたみ可能なブロックを作成するために使用されます。この中に 任意のHTMLコンテンツを配置できます。<details>が展開されると、ネストされたコンテンツが表示され、折りたたむと非表示になります。

構文:

HTML
    
      <details>
        <summary>見出し</summary>
        <!-- 隠されたコンテンツ -->
      </details>
    
  

open 属性:

この属性が存在する場合、<details>ブロックは初期状態で展開されています。

<details> の使い方例:

HTML
    
      <details open>
        <summary>基本情報</summary>
        <p>この情報はデフォルトで表示されています。これはopen属性が設定されているためです。</p>
      </details>
    
  

説明

  • <details>: 隠されたコンテンツのコンテナを作成します。
  • <summary>: 常に表示される見出しを定義し、コンテンツを展開または折りたたむためにクリックできます。

6.2 <summary> タグ

<sumary>エレメントは<details>の中で見出しを作成するために使用されます。この見出しは常に表示され、 <details>ブロックのコンテンツを展開または折りたたむためのコントロールエレメントとなります。

構文:

HTML
    
      <details>
        <summary>見出し</summary>
        <!-- 隠されたコンテンツ -->
      </details>
    
  

使用例:

HTML
    
      <details>
        <summary>詳細情報</summary>
        <p>これは隠されたコンテンツで、ブロックを展開すると表示されます。</p>
      </details>
    
  

<details> と <summary> 使用の利点

  1. ユーザー体験の向上: ユーザーは表示したいコンテンツを自分でコントロールできます。
  2. スペースの節約: 大量の情報をインタラクティブな見出しの後ろに隠すことができます。
  3. セマンティックなマークアップ: HTMLドキュメントの構造が向上し、ユーザーや検索エンジンへのアクセスが向上します。

6.3 JavaScriptとの連携

<details><sumary>エレメントは、JavaScriptを使って簡単にコントロールでき、 よりインタラクティブなウェブページを作ることができます。

JavaScriptの使用例:

HTML
    
      <details>
        <summary>詳細情報</summary>
        <p>これは隠されたコンテンツで、ブロックを展開すると表示されます。</p>
      </details>
      <details open>
        <summary>基本情報</summary>
        <p>この情報はデフォルトで表示されています。これはopen属性が設定されているためです。</p>
      </details>
      <button id="toggleDetails">折りたたむ/展開</button>
    
  
JavaScript
    
      // id 'toggleDetails' のボタンを見つけて、'click' イベントハンドラを追加します
      document.getElementById('toggleDetails').addEventListener('click', () => {
        // ページ上のすべての 'details' エレメントを見つけます
        document.querySelectorAll('details').forEach(detail => {
          // 各 'details' エレメントの 'open' プロパティの値を反転させます
          detail.open = !detail.open; 
        });
      });
    
  

説明:

  • "折りたたむ/展開" ボタン: ページ上のすべての<details>エレメントの状態を管理します。
  • click イベント: すべての<details>エレメントのopen属性を切り替えます。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION