互動元素

Frontend SELF TW
等級 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>

元素 <summary> 用於 <details> 內創建標題。此標題始終可見,並作為 <details> 區塊內容的控件。

語法:

HTML
    
      <details>
        <summary>標題</summary>
        <!-- 隱藏的內容 -->
      </details>
    
  

使用範例:

HTML
    
      <details>
        <summary>更多資訊</summary>
        <p>這是隱藏的內容,展開區塊後顯示。</p>
      </details>
    
  

使用 <details> 和 <summary> 的優勢

  1. 提升用戶體驗: 用戶可以自行控制想查看的內容。
  2. 節省空間: 透過互動式標題隱藏大量信息。
  3. 語義標記: 改善 HTML 文件結構,提高其對用戶和搜索引擎的可訪問性。

6.3 與 JavaScript 的互動

可以使用 JavaScript 輕鬆控制 <details><summary> 元素,以創建更具互動性的網頁。

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