HTML:
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="stylesheet" href="./timeline.css">
</head>
<body>
<div class="timeline">
<div class="container left">
<div class="content">
<h2>Jan. 2022</h2>
<p>Some content here...</p>
</div>
</div>
<div class="container right">
<div class="content">
<h2>Dec. 2021</h2>
<p>Some content here...</p>
</div>
</div>
<div class="container left">
<div class="content">
<h2>Aug. 2021</h2>
<p>Some content here...</p>
</div>
</div>
</div>
</body>
</html>
CSS:
:root {
--primary: #0F9097;
--primary-darken: #09575b;
}
* {
box-sizing: border-box;
}
body {
background-color: #333;
font-family: Arial;
color: #fff;
}
.timeline {
position: relative;
max-width: 1200px;
margin: 0 auto;
}
.timeline::after {
content: '';
position: absolute;
width: 2px;
background-color: white;
top: 0;
bottom: 0;
left: 50%;
margin-left: -1px;
}
.container {
padding: 10px 40px;
position: relative;
width: 50%;
}
.container::after {
content: '';
position: absolute;
width: 25px;
height: 25px;
right: -17px;
background-color: var(--primary);
border-width: 4px;
border-style: solid;
border-color: var(--primary-darken);
top: 15px;
border-radius: 50%;
z-index: 1;
}
.left {
left: 0;
}
.right {
left: 50%;
}
.left::before {
content: " ";
height: 0;
position: absolute;
top: 22px;
width: 0;
z-index: 1;
right: 30px;
border: medium solid var(--primary);
border-width: 10px 0 10px 10px;
border-color: transparent transparent transparent var(--primary);
}
.right::before {
content: " ";
height: 0;
position: absolute;
top: 22px;
width: 0;
z-index: 1;
left: 30px;
border: medium solid var(--primary);
border-width: 10px 10px 10px 0;
border-color: transparent var(--primary) transparent transparent;
}
.right::after {
left: -16px;
}
.content {
padding: 20px 30px;
background-color: var(--primary);
position: relative;
border-radius: 6px;
transition: background-color .5s;
}
.content:hover {
background-color: var(--primary-darken);
box-shadow: 5px 5px 5px #333333;
}
@media screen and (max-width: 600px) {
.timeline::after {
left: 31px;
}
.container {
width: 100%;
padding-left: 70px;
padding-right: 25px;
}
.container::before {
left: 60px;
border: medium solid white;
border-width: 10px 10px 10px 0;
border-color: transparent white transparent transparent;
}
.left::after, .right::after {
left: 15px;
}
.right {
left: 0%;
}
}