Как сделать бордер необычный + линии к каждому блоку? Обязательно адаптивно.
Верхний блок с двухцветной границей делается псевдоэлементами: они позиционируются под блоком, выдвигаются на нужное количество пикселей влево и вправо, их ширина вычисляемая. Благодаря таким махинациям границу можно анимировать при наведении, например, что недостижимо если просто поставить псевдоэлементам border.
Линии к блокам сделаны на SVG. В полилайнах есть не очевидные магические числа 197 и 1003, они высчитаны по формуле ((ширина обертки − сумма промежутков между блоками) / количество блоков) / 2 = ((1200 - 20*2) / 3) / 2 = 193.333 (первая координата), 1200 - 193 = 1007 (вторая координата). Далее указываем правильный viewBox и смотрим результат.
body {
overflow-x: hidden;
}
.top {
text-align: center;
margin-bottom: 5px;
}
button {
background: #ccc;
text-transform: uppercase;
position: relative;
padding: 15px 25px;
border: none;
font-weight: bold;
font-family: sans-serif;
}
button:before,
button:after {
position: absolute;
content: ' ';
left: -2px;
top: -2px;
width: calc(50% + 2px);
height: calc(100% + 4px);
background-color: royalblue;
transition: transform .2s;
transform-origin: 100% 100%;
z-index: -1;
}
button:after {
left: auto;
right: -2px;
background-color: tomato;
will-change: transform;
z-index: -1;
}
button:hover:after {
transform: scaleX(2.01);
}
.lines {
max-width: 1200px;
margin: auto;
}
.lines polyline {
stroke: grey;
}
.blocks {
max-width: 1200px;
margin: auto;
}
.blocks__inner {
display: flex;
justify-content: space-between;
margin: 0 -10px;
}
.item {
flex-grow: 1;
margin: 0 10px;
height: 100px;
background: grey;
}
<div class="top">
<button>Для кого этот курс</button>
</div>
<div class="lines">
<svg viewBox="0 0 1200 150">
<polyline points="600,0 193,150" />
<polyline points="600,0 600,150" />
<polyline points="600,0 1007,150" />
</svg>
</div>
<div class="blocks">
<div class="blocks__inner">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
Все можно сделать, но картинкой гораздо проще.
.wrap {
width: 200px;
height: 30px;
background: #757575;
position: relative;
}
.wrap div {
position: absolute;
}
.inner {
width: 196px;
height: 26px;
margin: 2px;
background: #b3b3b3;
font-family: verdana;
font-size: 13px;
line-height: 23px;
text-align: center;
}
.left,
.right {
width: 100px;
height: 30px;
}
.left {
background: black;
}
.right {
background: royalblue;
right: 0;
}
<div class="wrap">
<div class="left"></div>
<div class="right"></div>
<div class="inner">ДЛЯ КОГО ЭТОТ КУРС</div>
<div>
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники