当前位置:首页 > CSS

html css制作树

2026-04-02 16:18:48CSS

HTML和CSS制作树形结构

使用HTML和CSS可以创建树形结构,通常用于展示层级关系,如组织结构图、文件目录等。以下是几种实现方法:

使用无序列表嵌套

<div class="tree">
  <ul>
    <li>
      <span>根节点</span>
      <ul>
        <li><span>子节点1</span></li>
        <li><span>子节点2</span></li>
      </ul>
    </li>
  </ul>
</div>
.tree ul {
  padding-left: 20px;
  list-style: none;
}

.tree li {
  position: relative;
  margin: 0;
  padding: 5px 0;
}

.tree li::before {
  content: "";
  position: absolute;
  top: 0;
  left: -15px;
  width: 15px;
  height: 1px;
  background: #000;
}

.tree li:first-child::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -15px;
  width: 1px;
  background: #000;
}

使用Flexbox布局

<div class="tree">
  <div class="node">根节点</div>
  <div class="children">
    <div class="tree">
      <div class="node">子节点1</div>
    </div>
    <div class="tree">
      <div class="node">子节点2</div>
    </div>
  </div>
</div>
.tree {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.node {
  padding: 5px 10px;
  border: 1px solid #ccc;
  margin-bottom: 5px;
}

.children {
  display: flex;
  position: relative;
}

.children::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 50%;
  width: 1px;
  height: 5px;
  background: #000;
}

.tree + .tree::before {
  content: "";
  position: absolute;
  top: -5px;
  left: 0;
  right: 50%;
  height: 1px;
  background: #000;
}

使用伪元素连接节点

.tree li {
  position: relative;
  padding-left: 30px;
}

.tree li::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 0;
  width: 1px;
  height: 100%;
  background: #999;
}

.tree li::after {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 15px;
  height: 1px;
  background: #999;
}

.tree li:last-child::before {
  height: 50%;
}

添加交互效果

可以为树形结构添加展开/折叠功能:

html css制作树

.tree input[type="checkbox"] {
  display: none;
}

.tree label {
  cursor: pointer;
}

.tree input ~ ul {
  display: none;
}

.tree input:checked ~ ul {
  display: block;
}
<div class="tree">
  <input type="checkbox" id="node1" checked>
  <label for="node1">根节点</label>
  <ul>
    <li>子节点1</li>
    <li>子节点2</li>
  </ul>
</div>

这些方法可以根据需要组合使用,调整样式和结构以满足具体的设计需求。

标签: htmlcss
分享给朋友:

相关文章

用css制作导航条

用css制作导航条

水平导航条制作 使用display: inline-block或flexbox实现水平导航 为<ul>和<li>设置样式消除默认列表样式 添加padding和margin控制间…

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

css图标制作

css图标制作

CSS 图标制作方法 使用 Unicode 或图标字体 通过引入字体库(如 Font Awesome)或直接使用 Unicode 符号生成图标。例如,Font Awesome 的图标可通过类名调用:…

css制作开关

css制作开关

使用纯CSS制作开关 通过CSS的伪元素和input[type="checkbox"]可以创建自定义开关样式。关键点在于隐藏原生复选框,用CSS重新设计外观。 <label class="sw…

css怎么制作个人主页

css怎么制作个人主页

设计布局结构 使用CSS的Flexbox或Grid布局创建响应式结构。Flexbox适合一维排列(如导航栏),Grid适合二维布局(如整体页面分区)。例如: .container { displ…

css制作popup

css制作popup

CSS 制作 Popup 的方法 使用纯 CSS 创建基础 Popup 通过 HTML 和 CSS 结合,可以创建一个简单的弹出窗口。以下是一个基础实现: <div class="popup-…