JSFiddle - React, Tailwind, and code Playground
by Maulik Anand
HTML
<div id="chart">
<ul id="bars">
<li><div data-percentage="85" class="bar"><span>H</span>
<span>HTML</span><span>HTML</span><span>HTML</span></div></li>
<li><div data-percentage="85" class="bar"><span>CSS</span></div></li>
<li><div data-percentage="60" class="bar"><span>jQuery</span></div></li>
<li><div data-percentage="60" class="bar"><span>PHP</span></div></li>
<li><div data-percentage="35" class="bar"><span>MySQL</span></div></li>
<li><div data-percentage="85" class="bar"><span>Worpress</span></div></li>
</ul>
</div>
CSS
#chart {
width: 100%;
height: 300px;
display: block;
font-family: "Lato",sans-serif;
font-weight: 400;
margin-top: 30px;
margin-right: auto;
margin-bottom: 45px;
margin-left: auto;
}
#chart #numbers {
width: 20%;
height: 100%;
margin: 0;
padding: 0;
display: inline-block;
float: left;
}
#chart #numbers li {
text-align: right;
padding-right: 1em;
list-style: none;
height: 75px;
position: relative;
bottom: 30px;
font-style:italic;
}
#chart #numbers li span {
position: absolute;
bottom: 0;
right: 10px;
}
#chart #bars {
display: inline-block;
width: 80%;
height: 300px;
padding: 0;
margin: 0;
border-left:solid 1px #666;
border-bottom:solid 1px #666;
}
#chart #bars li {
display: inline-block;
width: 15%;
height: 300px;
margin: 0;
text-align: center;
position: relative;
}
#chart #bars li .bar {
width: 90%;
margin-left: 10%;
margin-bottom:10px;
position: absolute;
bottom: 0;
}
#chart #bars li .bar span {
color:#fff;
display:inline-table;
/* -webkit-transform: rotate(-90deg); */
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
margin-top:50px;
}
#chart #bars li:nth-child(odd) .bar {
background:#d25c27;
}
#chart #bars li:nth-child(even) .bar {
background:#dd855d;
}
JavaScript
$(function() {
$("#bars li .bar").each( function( key, bar ) {
var percentage = $(this).data('percentage');
$(this).animate({
'height' : percentage + '%'
}, 1000);
});
});