CodeGym /课程 /Frontend SELF ZH /交互式元素

交互式元素

Frontend SELF ZH
第 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> 中创建标题。这个标题始终可见,是用于控制块内容展开或收起的控件。

语法:

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