当前位置:首页 > CSS

制作树形菜单css

2026-03-12 08:32:17CSS

树形菜单的基本结构

HTML结构通常使用嵌套的无序列表(<ul><li>)实现树形层级。以下是一个基础示例:

<ul class="tree">
  <li>父节点1
    <ul>
      <li>子节点1</li>
      <li>子节点2</li>
    </ul>
  </li>
  <li>父节点2</li>
</ul>

核心CSS样式

通过CSS控制缩进和交互效果:

.tree, .tree ul {
  list-style-type: none;
  padding-left: 20px;
}

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

.tree li:before {
  content: "";
  position: absolute;
  left: -15px;
  top: 10px;
  border-top: 1px solid #ccc;
  width: 15px;
}

展开/折叠功能实现

添加点击交互控制子菜单显示:

.tree ul {
  display: none;
}

.tree li.active > ul {
  display: block;
}

.tree li:after {
  content: "+";
  position: absolute;
  left: -20px;
  cursor: pointer;
}

.tree li.active:after {
  content: "-";
}

视觉增强样式

添加连接线和图标美化:

.tree li {
  border-left: 1px dashed #999;
  padding-left: 25px;
}

.tree li:last-child {
  border-left: none;
}

.tree li:before {
  height: 1px;
  background: #999;
}

完整交互示例

结合JavaScript实现动态切换:

document.querySelectorAll('.tree li').forEach(item => {
  if (item.querySelector('ul')) {
    item.addEventListener('click', function(e) {
      e.stopPropagation();
      this.classList.toggle('active');
    });
  }
});

响应式调整

针对移动端优化显示效果:

制作树形菜单css

@media (max-width: 768px) {
  .tree li {
    padding-left: 15px;
    font-size: 14px;
  }
}

标签: 菜单css
分享给朋友:

相关文章

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏。设置背景色、内边距和悬停效果增强交互性。 <nav class="horizontal-nav…

css页脚制作

css页脚制作

CSS页脚制作方法 固定定位页脚 使用position: fixed将页脚固定在页面底部,适用于需要始终显示的页脚。 footer { position: fixed; bottom: 0;…

min.css制作

min.css制作

使用 min.css 制作轻量级样式 min.css 是一个极简的 CSS 框架,专注于轻量化和快速加载。以下是如何使用 min.css 进行开发的步骤。 引入 min.css 通过 CDN 直接引…

css制作流程图

css制作流程图

使用CSS制作流程图的方法 基础布局结构 采用HTML的<div>元素构建流程节点,结合CSS的flexbox或grid布局实现整体排列。节点间用伪元素或独立元素(如<span>…

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏是最常见的方法。 <nav class="horizontal-nav"> <u…

vue实现菜单定位

vue实现菜单定位

Vue实现菜单定位的方法 使用scrollIntoView方法 通过监听菜单点击事件,获取目标元素的DOM节点,调用scrollIntoView方法实现平滑滚动定位。需配合ref获取DOM节点。 m…