≪ Today I learned.
RSS購読
    公開日
    タグ
    HTML
    著者
    ダーシノ

    HTMLのみでTreeView UIをつくる

    listitem要素とdetails要素を使うことで、HTMLだけでTreeView UIを実装できる。details要素のname属性を使うことで、排他的な開閉処理も可能だ。

    <details>
      <summary>Root</summary>
      <ul>
        <li>System</li>
        <li>
          <details>
            <summary>Applications</summary>
            <ul>
              <li>Calendar.app</li>
              <li>Contacts.app</li>
              <li>Mail.app</li>
              ...
            </ul>
          </details>
        </li>
        ...
      </ul>
    </details>
    .treeview ul {
      list-style: none;
    }
    
    details > summary::marker {
      content: "(+) ";
    }
    details[open] > summary::marker {
      content: "(-) ";
    }

    デモ

    Root
    • System
    • Applications
      • Calendar.app
      • Contacts.app
      • Mail.app
    • Users
      • root
      • user
        • Applications
        • Desktop
          • memo.txt
        • Documents
          • file.txt
          • image.png

    TreeViewのデモアニメーション。上記のHTMLで実装されたTreeView UIが表示されている