<div class="line">
<div class="line__item">
<div class="line__item-body">
<div class="line__item-circle"></div>
<div class="line__item-title">Вид обучения</div>
</div>
<div class="line__item-drop">
Какой-то контент
</div>
</div>
<div class="line__item">
<div class="line__item-body">
<div class="line__item-circle"></div>
<div class="line__item-title">Вид занятий</div>
</div>
<div class="line__item-drop">
Какой-то контент
</div>
</div>
<div class="line__item">
<div class="line__item-body">
<div class="line__item-circle"></div>
<div class="line__item-title">Длительность</div>
</div>
<div class="line__item-drop">
Какой-то контент
</div>
</div>
</div>
.line {
position: relative;
display: flex;
justify-content: center;
&:after {
position: absolute;
top: 50%;
left: 0;
width: 100%;
height: 1px;
background-color: #006200;
transform: translateY(-50%);
content: "";
}
&__item {
position: relative;
margin-right: 200px;
&:last-of-type {
margin-right: 0;
}
}
&__item-circle {
position: relative;
z-index: 1;
width: 40px;
height: 40px;
border-radius: 50%;
background-color: #006200;
cursor: pointer;
}
&__item-title {
position: absolute;
bottom: -20px;
left: 0;
white-space: nowrap;
transform: translateX(calc(-50% + 20px));
}
&__item-drop {
position: absolute;
top: calc(100% + 40px);
left: 0;
width: 200px;
padding: 20px 10px;
color: #ffffff;
text-align: center;
background-color: #006200;
transform: translateX(calc(-50% + 20px));
opacity: 0;
visibility: hidden;
transition: 0.3s;
&--visible {
opacity: 1;
visibility: visible;
}
}
}
View Compiled
document.querySelectorAll('.line__item').forEach((item) => {
const circle = item.querySelector('.line__item-circle');
const drop = item.querySelector('.line__item-drop');
circle.addEventListener('click', () => {
drop.classList.toggle('line__item-drop--visible');
});
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.