用js简单绘制杜邦图

用js绘制简单的杜邦图,也是横着的树状图形;

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>tree</title> 
	<style class="csscreations">
	/*Now the CSS*/
	* {margin: 0; padding: 0;}
	.tree ul {
	 padding-top: 20px; position: relative;
	 
	 transition: all 0.5s;
	 -webkit-transition: all 0.5s;
	 -moz-transition: all 0.5s;
	}
	
	.tree li {
	 float: left; text-align: center;
	 list-style-type: none;
	 position: relative;
	 padding: 20px 5px 0 5px;
	 
	 transition: all 0.5s;
	 -webkit-transition: all 0.5s;
	 -moz-transition: all 0.5s;
	}
	
	/*We will use ::before and ::after to draw the connectors*/
	
	.tree li::before, .tree li::after{
	 content: '';
	 position: absolute; top: 0; right: 50%;
	 border-top: 1px solid #1a80c3;
	 width:50%; height: 20px;
	}
	.tree li::after{
	 right: auto; left: 50%;
	 border-left: 1px solid #1a80c3;
	}
	
	/*We need to remove left-right connectors from elements without 
	any siblings*/
	.tree li:only-child::after, .tree li:only-child::before {
	 display: none;
	}
	
	/*Remove space from the top of single children*/
	.tree li:only-child{ padding-top: 0;}
	
	/*Remove left connector from first child and 
	right connector from last child*/
	.tree li:first-child::before, .tree li:last-child::after{
	 border: 0 none;
	}
	/*Adding back the vertical connector to the last nodes*/
	.tree li:last-child::before{
	 border-right: 1px solid #1a80c3;
	 border-radius: 0 5px 0 0;
	 -webkit-border-radius: 0 5px 0 0;
	 -moz-border-radius: 0 5px 0 0;
	}
	.tree li:first-child::after{
	 border-radius: 5px 0 0 0;
	 -webkit-border-radius: 5px 0 0 0;
	 -moz-border-radius: 5px 0 0 0;
	}
	
	/*Time to add downward connectors from parents*/
	.tree ul ul::before{
	 content: '';
	 position: absolute; top: 0; left: 50%;
	 border-left: 1px solid #1a80c3;
	 width: 0; height: 20px;
	}
	
	.tree li .child{
	 text-decoration: none;
	 color: #666;
	 font-family: "微软雅黑";
	 font-size: 16px;
	 display: inline-block;
	 
	 border-radius: 5px;
	 -webkit-border-radius: 5px;
	 -moz-border-radius: 5px;
	 
	 transition: all 0.5s;
	 -webkit-transition: all 0.5s;
	 -moz-transition: all 0.5s;
	}
	
	/*Time for some hover effects*/
	/*We will apply the hover effect the the lineage of the element also*/
	.tree li .child{
	 min-width:150px;background: #1a80c3; color: #fff; border: 1px solid #1a80c3;
	}
	
	.tree li .child .child-data{
	 height:30px;background: #fff;color: #666;border-radius: 0px 0px 5px 5px;margin-top:10px;
	}
	
	.tree li .child-symbol{
	 width:30px;height:30px;line-height:30px;border:1px solid #1fc19e;border-radius:20px;color:#1fc19e;
	 display:inline-block;font-size:50px;
	}
	.tree li .child-multiply{
	 width:30px;height:30px;line-height:30px;border:1px solid #1fc19e;border-radius:20px;color:#1fc19e;
	 display:inline-block;font-size:30px;
	}
	/*Thats all. I hope you enjoyed it.
	Thanks :)*/
	</style>
</head>
<body>
<div class="tree">
 <ul>
  <li>
  <div class='child'>item1<div class='child-data'>160亿元</div></div>
   <ul>
    <li>
     <div class='child'>item11<div class='child-data'>160亿元</div></div>
     <span class='child-symbol'>+</span>
     <ul>
      <li>
       <div class='child'>item21<div class='child-data'>160亿元</div></div>
       <span class='child-symbol'>+</span>
      </li>
      <li>
       <div class='child'>item22<div class='child-data'>160亿元</div></div>
       <ul>
      	<li>
       	 <div class='child'>item31<div class='child-data'>160亿元</div></div>
       	 <span class='child-symbol'>+</span>
     	</li>
      	<li>
         <div class='child'>item32<div class='child-data'>160亿元</div></div>
         <span class='child-symbol'>-</span>
         <ul>
      	  <li>
       	   <div class='child'>item41<div class='child-data'>160亿元</div></div>
       	   <span class='child-multiply'>×</span>
     	  </li>
      	  <li>
           <div class='child'>item42<div class='child-data'>160亿元</div></div>
           <ul>
      	     <li>
       	      <div class='child'>item51<div class='child-data'>160亿元</div></div>
       	      <span class='child-multiply'>×</span>
     	     </li>
      	     <li>
              <div class='child'>item52<div class='child-data'>160亿元</div></div>
      	     </li>
           </ul>
      	  </li>
         </ul>
      	</li>
      	<li>
       	 <div class='child'>item33<div class='child-data'>160亿元</div></div>
       	 <span class='child-symbol'>+</span>
     	</li>
      	<li>
         <div class='child'>item34<div class='child-data'>160亿元</div></div>
      	</li>
       </ul>
      </li>
     </ul>
    </li>
    <li>
     <div class='child'>item12<div class='child-data'>160亿元</div></div>
     <span class='child-symbol'>-</span>
    </li>
   	<li>
     <div class='child'>item13<div class='child-data'>160亿元</div></div>
    </li>
   </ul>
  </li> 
 </ul>
</div>
</body>
</html>

页面效果如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值