html css js 树形框
时间: 2023-03-19 16:24:02 浏览: 220
树形.html
您好!要创建一个树形框,可以使用 HTML、CSS 和 JavaScript。
以下是一个基本的树形结构示例,使用无序列表(`<ul>`)和有序列表(`<ol>`)来创建父级和子级元素:
HTML 代码:
```html
<ul>
<li>Parent 1
<ol>
<li>Child 1</li>
<li>Child 2</li>
</ol>
</li>
<li>Parent 2
<ol>
<li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li>
</ol>
</li>
</ul>
```
CSS 代码:
```css
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
li {
margin: 0;
padding: 0 0 0 1em;
}
li:before {
content: "";
display: inline-block;
width: 0;
height: 0;
margin: 0;
padding: 0;
border-top: 0.5em solid transparent;
border-bottom: 0.5em solid transparent;
border-left: 0.5em solid black;
vertical-align: middle;
margin-right: 0.5em;
}
li:last-child:before {
border-left: none;
}
```
JavaScript 代码:
```javascript
const toggler = document.querySelectorAll(".caret");
for (let i = 0; i < toggler.length; i++) {
toggler[i].addEventListener("click", function() {
this.parentElement.querySelector(".nested").classList.toggle("active");
this.classList.toggle("caret-down");
});
}
```
这里使用了一个带有可展开/收起符号的按钮来控制子级列表的可见性。您可以在 CSS 中添加以下代码来定义按钮:
```css
.caret {
cursor: pointer;
user-select: none;
}
.caret::before {
content: "\25B6";
color: black;
display: inline-block;
margin-right: 6px;
}
.caret-down::before {
transform: rotate(90deg);
}
```
完整的代码可以在下面的代码段中找到:
```html
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
li {
margin: 0;
padding: 0 0 0 1em;
}
li:before {
content: "";
display: inline-block;
width: 0;
height: 0;
margin: 0;
padding: 0;
border-top: 0.5em solid transparent;
border-bottom: 0.5em solid transparent;
border-left: 0.5em solid black;
vertical-align: middle;
margin-right: 0.5em;
}
li:last-child:before {
border-left: none;
}
.caret {
cursor: pointer;
user-select: none;
}
.caret::before {
content: "\25B6";
color: black;
display: inline-block;
margin-right: 6px;
}
.caret-down::before {
transform: rotate(90deg);
}
.nested {
display: none;
}
.active {
display: block;
}
</style>
</head>
<body>
<ul
阅读全文