Movatterモバイル変換


[0]ホーム

URL:


💡 kachibito.net

[PR]

CSSだけで開閉するツリー

Ads

Result

以前「CSSでフォルダツリーを作る」を書きましたが今回は開閉するタイプです。

お察しの通りですがdetailsタグで実装されています。

css

.tree {--spacing: 1.5rem;--radius: 10px;}.tree li {display: block;position: relative;padding-left: calc(2 * var(--spacing) - var(--radius) - 2px);}.tree ul {margin-left: calc(var(--radius) - var(--spacing));padding-left: 0;}.tree ul li {border-left: 2px solid #ddd;}.tree ul li:last-child {border-color: transparent;}.tree ul li::before {content: "";display: block;position: absolute;top: calc(var(--spacing) / -2);left: -2px;width: calc(var(--spacing) + 2px);height: calc(var(--spacing) + 1px);border: solid #ddd;border-width: 0 0 2px 2px;}.tree summary {display: block;cursor: pointer;}.tree summary::marker,.tree summary::-webkit-details-marker {display: none;}.tree summary:focus {outline: none;}.tree summary:focus-visible {outline: 1px dotted #000;}.tree li::after,.tree summary::before {content: "";display: block;position: absolute;top: calc(var(--spacing) / 2 - var(--radius));left: calc(var(--spacing) - var(--radius) - 1px);width: calc(2 * var(--radius));height: calc(2 * var(--radius));border-radius: 50%;background: #ddd;}.tree summary::before {content: "+";z-index: 1;background: #696;color: #fff;line-height: calc(2 * var(--radius) - 2px);text-align: center;}.tree details[open] > summary::before {content: "−";}

調整が必要ですがネストが深くなっても動作しました。

html

<ul class="tree"><li><details open><summary>Giant planets</summary><ul><li><details><summary>Gas giants</summary><ul><li>Jupiter</li><li>Saturn</li></ul></details></li><li><details><summary>Ice giants</summary><ul><li>Uranus</li><li>Neptune</li></ul></details></li></ul></details></li></ul>

classは親のみ。

via

詳しい解説は以下をご参照下さい。
Tree views in css

recommend

Author


Kachibito.net is a website to writing tutorials and code snippets for Web Developers, the main subjects are WordPress, javascript, CSS, OSS, tools and resources.

Links

Resources & Tools

Resource全記事 →

OSS

OSS全記事 →

AI

AI全記事 →

CSS snippet

CSS全記事 →

JavaScript snippet

JavaScript全記事 →

WordPress Code

WordPress全記事 →

[8]ページ先頭

©2009-2025 Movatter.jp