"Responsive Timeline (dates+icons)"
Bootstrap 3.3.0 Snippet by xrozix

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <div class="page-header"> <h1 id="timeline">Timeline</h1> </div> <ul class="timeline"> <li class="timeline-inverted"> <div class="timeline-badge btn-danger"> <span class="timeline-day">11</span> <span class="timeline-month">APR</span> </div> <div class="timeline-panel"> <div class="timeline-heading"> <h4 class="timeline-title">Basic Structure</h4> </div> <div class="timeline-body"> <p>The basic structure of the timeline is a list <code><ul class="timeline"></code> with each element on the timeline wrapped in a list item <code>li></code></p> <hr><code> <ul class="timeline"&Gt;<br>   <li class="timeline-inverted"&Gt;<br>     <-- Timeline badge / icon goes here... see later --><br>     <div class="timeline-panel"&Gt;<br>       <div class="timeline-heading"&Gt;<br>         <h4 class="timeline-title"&Gt;<br>         The panel title.<br>         </h4&Gt;<br>       </div&Gt;<br>       <div class="timeline-body"&Gt;<br>         The main text in the timeline panel<br>       </div&Gt;<br>     </div&Gt;<br>   </li&Gt;<br> </ul&Gt; </code><hr> <p><strong>Note:</strong> the <code>class="timeline-inverted"</code> on the <code><li></code> to display the entry on the right, otherwise it defaults to the left. </div> </div> </li> <li> <div class="timeline-badge btn-success"> <span class="timeline-day">13</span> <span class="timeline-month">APR</span> </div> <div class="timeline-panel"> <div class="timeline-heading"> <h4 class="timeline-title">Date Badges</h4> <p><small class="text-muted"><i class="glyphicon glyphicon-time"></i> 11:45</small></p> </div> <div class="timeline-body"> <p>To display the date on the timeline, simply wrap the day and month in <code><span></code> elements with <code>timeline-day</code> and <code>timeline-month</code> classes:</p> <hr><p> <code> <div class="timeline-badge btn-success"><br>   <span class="timeline-day">13</span><br>   <span class="timeline-month">APR</span><br> </div> </code> </p> </div> </div> </li> <li class="timeline-inverted"> <div class="timeline-icon btn-info"><i class="glyphicon glyphicon-question-sign"></i></div> <div class="timeline-panel"> <div class="timeline-heading"> <h4 class="timeline-title">Icon badges</h4> </div> <div class="timeline-body"> <p>To display an icon on the timeline rather than the date, use standard bootstrap glyphicons (or font-awesome icons) and wrap them in a <code><span></code> with a class of <code>timeline-icon</code>:</p> <hr><p> <code> <div class="timeline-icon btn-info"><br>   <i class="glyphicon glyphicon-question-sign"></i><br> </div> </code> </p> </div> </div> </li> </ul> </div>
.timeline { list-style: none; padding: 20px 0 20px; position: relative; } .timeline:before { top: 0; bottom: 0; position: absolute; content: " "; width: 3px; background-color: #eeeeee; left: 50%; margin-left: -1.5px; } .timeline > li { margin-bottom: 20px; position: relative; } .timeline > li:before, .timeline > li:after { content: " "; display: table; } .timeline > li:after { clear: both; } .timeline > li > .timeline-panel { width: calc(50% - 50px); width: -moz-calc(50% - 50px); width: -webkit-calc(50% - 50px); float: left; border: 1px solid #d4d4d4; border-radius: 2px; padding: 20px; position: relative; -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); } .timeline > li > .timeline-panel:before { position: absolute; top: 26px; right: -15px; display: inline-block; border-top: 15px solid transparent; border-left: 15px solid #ccc; border-right: 0 solid #ccc; border-bottom: 15px solid transparent; content: " "; } .timeline > li > .timeline-panel:after { position: absolute; top: 27px; right: -14px; display: inline-block; border-top: 14px solid transparent; border-left: 14px solid #fff; border-right: 0 solid #fff; border-bottom: 14px solid transparent; content: " "; } .timeline > li > .timeline-badge { width: 50px; height: 50px; font-size: 1.2em; text-align: center; position: absolute; top: 20px; left: 50%; margin-left: -25px; z-index: 100; border-top-right-radius: 50%; border-top-left-radius: 50%; border-bottom-right-radius: 50%; border-bottom-left-radius: 50%; } .timeline > li > .timeline-icon { width: 50px; height: 50px; line-height: 50px; font-size: 1.4em; text-align: center; position: absolute; top: 16px; left: 50%; margin-left: -25px; z-index: 100; border-top-right-radius: 50%; border-top-left-radius: 50%; border-bottom-right-radius: 50%; border-bottom-left-radius: 50%; } .timeline > li > .timeline-badge > span.timeline-day { font-size: 1.4em; } .timeline > li > .timeline-badge > span.timeline-month { font-size: .7em; position: relative; top: -10px; } .timeline > li.timeline-inverted > .timeline-panel { float: right; } .timeline > li.timeline-inverted > .timeline-panel:before { border-left-width: 0; border-right-width: 15px; left: -15px; right: auto; } .timeline > li.timeline-inverted > .timeline-panel:after { border-left-width: 0; border-right-width: 14px; left: -14px; right: auto; } .timeline-title { margin-top: 0; color: inherit; } @media only screen and (max-width: 767px) { ul.timeline:before { left: 40px; } ul.timeline > li > .timeline-panel { width: calc(100% - 90px); width: -moz-calc(100% - 90px); width: -webkit-calc(100% - 90px); } ul.timeline > li > .timeline-badge, ul.timeline > li > .timeline-icon { left: 15px; margin-left: 0; top: 16px; } ul.timeline > li > .timeline-panel { float: right; } ul.timeline > li > .timeline-panel:before { border-left-width: 0; border-right-width: 15px; left: -15px; right: auto; } ul.timeline > li > .timeline-panel:after { border-left-width: 0; border-right-width: 14px; left: -14px; right: auto; } }

Related: See More


Questions / Comments: