• 父节点…">
    当前位置:首页 > CSS

    制作树形菜单css

    2026-04-02 04:30:42CSS

    树形菜单的基本结构

    HTML结构通常使用嵌套的无序列表(<ul><li>)表示层级关系:

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

    基础CSS样式

    清除默认列表样式并设置基础间距:

    .tree, .tree ul {
      list-style: none;
      padding-left: 20px;
      margin: 0;
    }
    
    .tree li {
      position: relative;
      padding: 5px 0;
    }

    连接线设计

    使用伪元素创建垂直和水平连接线:

    .tree li::before {
      content: "";
      position: absolute;
      top: 0;
      left: -15px;
      width: 15px;
      height: 100%;
      border-left: 1px solid #ccc;
    }
    
    .tree li::after {
      content: "";
      position: absolute;
      top: 15px;
      left: -15px;
      width: 15px;
      border-bottom: 1px solid #ccc;
    }
    
    .tree li:last-child::before {
      height: 15px;
    }

    交互效果

    添加展开/折叠功能时的样式变化:

    .tree li > ul {
      display: none;
    }
    
    .tree li.open > ul {
      display: block;
    }
    
    .tree li > span::before {
      content: "+";
      margin-right: 5px;
      cursor: pointer;
    }
    
    .tree li.open > span::before {
      content: "-";
    }

    美化样式

    添加图标和颜色增强视觉效果:

    .tree li > span {
      display: inline-block;
      padding: 2px 5px;
      border-radius: 3px;
      transition: background 0.3s;
    }
    
    .tree li > span:hover {
      background: #f0f0f0;
    }

    响应式调整

    针对不同屏幕尺寸优化显示:

    @media (max-width: 768px) {
      .tree, .tree ul {
        padding-left: 15px;
      }
    
      .tree li::before,
      .tree li::after {
        left: -10px;
        width: 10px;
      }
    }

    完整示例

    结合HTML和JavaScript实现完整功能:

    制作树形菜单css

    <ul class="tree">
      <li><span>根节点</span>
        <ul>
          <li><span>分支1</span>
            <ul>
              <li><span>叶子1</span></li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
    
    <script>
    document.querySelectorAll('.tree span').forEach(span => {
      span.addEventListener('click', function() {
        this.parentElement.classList.toggle('open');
      });
    });
    </script>

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

    相关文章

    css字体制作

    css字体制作

    CSS字体设置基础 在CSS中设置字体主要通过font-family属性实现,可以指定多个字体作为备选。系统会优先使用第一个可用字体。 body { font-family: "Helvetic…

    css制作箭头

    css制作箭头

    使用边框制作箭头 通过设置元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; height:…

    css 在线制作

    css 在线制作

    CSS 在线制作工具推荐 以下是一些实用的在线 CSS 工具,可用于快速生成、编辑和优化 CSS 代码: CSS 生成器 CSS3 Generator(如css3generator.com):…

    淘宝css导航栏制作

    淘宝css导航栏制作

    淘宝CSS导航栏制作 制作类似淘宝的导航栏需要关注几个关键点:结构清晰、响应式设计、悬停效果以及图标使用。以下是具体实现方法: HTML结构 <div class="nav-container…

    css 制作三角形

    css 制作三角形

    使用边框制作三角形 通过设置元素的边框属性,利用边框交汇处的斜切特性生成三角形。将元素的宽高设为0,通过调整不同方向边框的宽度和颜色实现。 .triangle { width: 0; hei…

    css制作表单

    css制作表单

    创建基本表单结构 使用HTML的<form>标签作为表单容器,内部包含输入字段、标签和提交按钮。表单元素通常需要<label>关联以提高可访问性。 <form>…