I have found this chart to display family tree. Everything is great expect for husband and wife. The connector between husband and wife is not straight. I want the connector line between husband and wife to be straight line. live feed can be seen in below link: live demo jsFiddle
/*Now the CSS*/
* {
margin: 0;
padding: 0;
}
.yellow {
background: #FFEC94;
}
.orange {
background: #FFF7EF;
}
.green {
background: #B0E57C;
}
.royal-blue {
background: #56BAEC;
}
.brown {
background: #FFAEAE;
}
.green-one {
background: #D6E3B5;
}
.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 #ccc;
width: 50%;
height: 20px;
}
.tree li::after {
right: auto;
left: 50%;
border-left: 1px solid #ccc;
}
/*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 #ccc;
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: 1px 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 #ccc;
width: 0;
height: 20px;
}
.tree li a {
border: 1px solid #ccc;
padding: 5px 10px;
text-decoration: none;
color: #666;
font-family: arial, verdana, tahoma;
font-size: 11px;
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 a:hover,
.tree li a:hover+ul li a {
background: #c8e4f8;
color: #000;
border: 1px solid #94a0b4;
}
/*Connector styles on hover*/
.tree li a:hover+ul li::after,
.tree li a:hover+ul li::before,
.tree li a:hover+ul::before,
.tree li a:hover+ul ul::before {
border-color: #94a0b4;
}
/*Thats all. I hope you enjoyed it.
Thanks :)*/
<div class="tree" style="width:2860px">
<ul>
<li>
<a href="#" class="first yellow">Husband Name</a>
<ul>
<li><a href='#'>Child One</a>
</li>
<li>
<a href='#'>Child Two</a>
<ul>
<li><a href='#'>Grand Child One</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#" class="first yellow">Spouse Name</a>
</li>
</ul>
</div>
Thank-you
An organizational chart is a diagram that visually conveys a company's internal structure by detailing the roles, responsibilities, and relationships between individuals within an entity.
Four Types of Organizational Charts: Functional Top-Down, Flat, Divisional, and Matrix.
An organizational chart shows the internal structure of an organization or company. The employees and positions are represented by boxes or other shapes, sometimes including photos, contact information, email and page links, icons and illustrations. Straight or elbowed lines link the levels together.
What is an Organizational Chart? The definition of an organization chart or "org chart" is a diagram that displays a reporting or relationship hierarchy. The most frequent application of an org chart is to show the structure of a business, government, or other organization.
I write another answer because maybe the first one can be useful to others. Here is a solution for the husband-wife connection problem
$(document) .ready(function() {
$('.c1').hide();
$("a").click(function(){
$(this).parent().children("ul").toggle();
});
});
/*Now the CSS*/
* {margin: 0; padding: 0;}
.yellow{background:#FFEC94;}
.orange{background:#FFF7EF;}
.green{background:#B0E57C;}
.royal-blue{background:#56BAEC;}
.brown{background:#FFAEAE;}
.green-one{background:#D6E3B5;}
.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 #ccc;
width: 50%; height: 20px;
}
.tree li::after{
right: auto; left: 50%;
border-left: 1px solid #ccc;
}
/*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 #ccc;
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 #ccc;
width: 0; height: 20px;
}
.tree li a{
border: 1px solid #ccc;
padding: 5px 10px;
text-decoration: none;
color: #666;
font-family: arial, verdana, tahoma;
font-size: 11px;
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 a:hover, .tree li a:hover+ul li a {
background: #c8e4f8; color: #000; border: 1px solid #94a0b4;
}
/*Connector styles on hover*/
.tree li a:hover+ul li::after,
.tree li a:hover+ul li::before,
.tree li a:hover+ul::before,
.tree li a:hover+ul ul::before{
border-color: #94a0b4;
}
.tree .spouse::before, .tree .spouse::after, .tree .husband::before, .tree .husband::after{
top: 30px;
height: 0;
z-index: -1;
}
tree .husband::before, .tree .husband::after{
}
.tree .spouse::before, .tree .spouse::after{
}
/*Thats all. I hope you enjoyed it.
Thanks :)*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div class="tree" style="width:2860px">
<ul>
<li class="husband">
<a href="#" class="first yellow">Husband Name</a>
<ul>
<li><a href='#'>Child One</a>
</li>
<li>
<a href='#'>Child Two</a>
<ul>
<li><a href='#'>Grand Child One</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="spouse">
<a href="#" class=" first yellow">Spouse Name</a>
</li>
</ul>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With