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

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が表示されている