2017
Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.
Learn how to use CSS to create a responsive 'timeline'.
Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.
Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.
Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.
<div class="timeline"> <div class="container left"> <div class="content"> <h2>2017</h2> <p>Lorem ipsum..</p> </div> </div> <div class="container right"> <div class="content"> <h2>2016</h2> <p>Lorem ipsum..</p> </div> </div> </div>
* { box-sizing: border-box; } /* Set background color */ body { background-color: #474e5d; font-family: Helvetica, sans-serif; } /* Actual timeline (vertical ruler) */ .timeline { position: relative; max-width: 1200px; margin: 0 auto; } /* Actual timeline (vertical ruler) */ .timeline::after { content: ''; position: absolute; width: 6px; background-color: white; top: 0; bottom: 0; left: 50%; margin-left: -3px; } /* Container that encloses the content */ .container { padding: 10px 40px; position: relative; background-color: inherit; width: 50%; } /* The circle on the timeline */ .container::after { content: ''; position: absolute; width: 25px; height: 25px; right: -17px; background-color: white; border: 4px solid #FF9F55; top: 15px; border-radius: 50%; z-index: 1; } /* Place the container on the left */ .left { left: 0; } /* Place the container on the right */ .right { left: 50%; } /* Add an arrow to the left container (pointing to the right) */ .left::before { content: " "; height: 0; position: absolute; top: 22px; width: 0; z-index: 1; right: 30px; border: medium solid white; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent white; } /* Add an arrow to the right container (pointing to the left) */ .right::before { content: " "; height: 0; position: absolute; top: 22px; width: 0; z-index: 1; left: 30px; border: medium solid white; border-width: 10px 10px 10px 0; border-color: transparent white transparent transparent; } /* Fix the circle position of the right container */ .right::after { left: -16px; } /* Actual content */ .content { padding: 20px 30px; background-color: white; position: relative; border-radius: 6px; } /* Media query - responsive timeline for screens less than 600 pixels wide */ @media screen and (max-width: 600px) { /* Place the timeline to the left */ .timeline::after { left: 31px; } /* Full-width container */ .container { width: 100%; padding-left: 70px; padding-right: 25px; } /* Ensure all arrows point to the left */ .container::before { left: 60px; border: medium solid white; border-width: 10px 10px 10px 0; border-color: transparent white transparent transparent; } /* Ensure all circles are in the same position */ .left::after, .right::after { left: 15px; } /* Make all right containers behave like left containers */ .right { left: 0%; } }