美文网首页
css实现组织架构图1-一对多,逐级增多

css实现组织架构图1-一对多,逐级增多

作者: keknei | 来源:发表于2025-08-31 11:20 被阅读0次

先看下效果图


organization.png

其中html代码

<div class="org-tree">
  <ul>
    <li class="ceo">
      <div>
        <span>总经理</span><br/>
        <span>张三,李四四四</span>
      </div>
      <ul>
        <li class="manager">
          <div>技术总监</div>
          <ul>
            <li class="department">
              <div>前端开发部</div>
              <ul>
                <li class="employee">
                  <div>
                    <span>前端工程师A</span>
                    <span>张三,李思思</span>
                  </div>
                </li>
                <li class="employee"><div>前端工程师</div></li>
                <li class="employee"><div>前端工程师C</div></li>
              </ul>
            </li>
            <li class="department">
              <div>后端开发部</div>
              <ul>
                <li class="employee"><div>后端工程师A</div></li>
                <li class="employee"><div>
                  <span>前端工程师A</span>
                  <span>张三,李思思</span>
                </div></li>
                <li class="employee"><div>后端工程师C</div></li>
              </ul>
            </li>
            <li class="department">
              <div>测试部</div>
              <ul>
                <li class="employee"><div>测试工程师A</div></li>
                <li class="employee"><div>测试工程师B</div></li>
              </ul>
            </li>
          </ul>
        </li>
        <li class="manager">
          <div>产品总监</div>
          <ul>
            <li class="department">
              <div>产品设计部</div>
              <ul>
                <li class="employee"><div>产品经理A</div></li>
                <li class="employee"><div>产品经理B</div></li>
              </ul>
            </li>
            <li class="department">
              <div>UI设计部</div>
              <ul>
                <li class="employee"><div>UI设计师A</div></li>
                <li class="employee"><div>UI设计师B</div></li>
              </ul>
            </li>
          </ul>
        </li>
        <li class="manager">
          <div>运营总监</div>
          <ul>
            <li class="department">
              <div>市场部</div>
              <ul>
                <li class="employee"><div>市场专员A</div></li>
                <li class="employee"><div>市场专员B</div></li>
              </ul>
            </li>
            <li class="department">
              <div>客服部</div>
              <ul>
                <li class="employee"><div>客服专员A</div></li>
                <li class="employee"><div>客服专员B</div></li>
                <li class="employee"><div>客服专员C</div></li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

css代码,主要用ullibefore、after伪元素进行设置,其中ul伪元素主要用来实现连接下方的线,li的伪元素主要是来实现连接左右的线,li要加上padding,这样可以实现左右有间隔距离,并且伪元素连接的线也正好是li的一半宽度

ul,li{
  list-style: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.org-tree {
  display: flex;
  justify-content: center;
  padding: 20px;
}
.org-tree ul {
  position: relative;
  padding: 16px 0;
  margin: 0 auto;
  text-align: center;
  display: flex;
  justify-content: center;
}
.org-tree ul::after {
  content: '';
  display: block;
  clear: both;
}

.org-tree li {
  /* display: inline-block; */
  float: left;
  text-align: center;
  position: relative;
  padding: 16px 8px 0 8px;
}
.org-tree li::before,
.org-tree li::after {
  content: '';
  position: absolute;
  top: 0;
  right: 50%;
  border-top: 2px solid #ccc;
  width: 50%;
  height: 16px;
}

.org-tree li::after {
  left: 50%;
  border-left: 2px solid #ccc;
}
.org-tree li:first-child::before,
.org-tree li:last-child::after {
  border: 0 none;
}
.org-tree li:last-child::before {
  border-right: 2px solid #ccc;
  border-radius: 0 5px 0 0;
}

.org-tree li:first-child::after {
  border-radius: 5px 0 0 0;
}

.org-tree .ceo::after,
.org-tree .ceo::before {
  height: 0;
}
.org-tree ul ul::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  border-left: 2px solid #ccc;
  width: 0;
  height: 16px;
}
.org-tree li div {
  border: 2px solid #ccc;
  padding: 8px 3px;
  display: inline-block;
  border-radius: 5px;
  color: #333;
  font-size: 14px;
  background: #fff;
  width: 120px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.org-tree .employee div {
  width: 40px;
  height: 150px;
}
.org-tree .employee div span {
  display: inline-block;
}
.org-tree .employee div span:first-child { 
  margin-bottom: 10px;
}

相关文章

  • css有哪些选择器,优先级如何计算?

    一、背景介绍 什么是CSS选择器? 要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要...

  • html入门(二)选择器

    选择器 要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。HTML页...

  • CSS常用五类选择器

    要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。 ㈠什么是选择器?...

  • echarts实现组织架构图

    echarts实现组织架构图 最近在项目终于到了这样一个需求,需要实现一个网站的拓扑图,如下: 但是在网上找了许久...

  • 【Excel篇】快速🔜制作组织架构图

    之前,分享过利用Word快速制作组织架构图 【Word篇】快速?制作组织架构图,如何通过Excel制作组织架构图?...

  • id和class的区别?

    �1.背景介绍 HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。 HTML页面中...

  • css的选择器

    一.样式 二.选择器 为什么要用选择器?要使用css对html页面中的元素实现一对一,一对多或者多对一的控制,这就...

  • ID与CLASS的区别

    1.背景介绍 HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。 HTML页面中的...

  • CSS实现一个简单的拓扑图

      有时候会需要实现简单的拓扑图。如果是简单的一对多的关系,可以使用CSS实现。比如需要实现以下效果: 具体思路是...

  • 『知遇』的组织架构图工具有什么特点?

    『知遇』致力于打造最佳组织架构图工具,颠覆了传统的组织架构图制作方式,带给使用者全新的绘图体验! 『知遇』组织架构...

网友评论

      本文标题:css实现组织架构图1-一对多,逐级增多

      本文链接:https://www.haomeiwen.com/subject/enueajtx.html