Моя идея состоит в том, чтобы соединение (линия) всегда было центром строки при абсолютном / относительном позиционировании с меньшим значением z-index
, чем у этих цветовых блоков, так что линия скрыта за блоками, но показана между блоки.
Сложная часть точно рассчитывает положение соединительной линии, потому что строки bootstrap имеют свои собственные отступы. Вот почему лучше использовать SCSS
, чтобы вы могли прочитать bootstrap значения по умолчанию для параметров строк и столбцов и рассчитать линию соединения на основе этих значений.
Но для демонстрации я буду придерживаться CSS
и "жестко кодировать" предварительно сконфигурированные значения из bootstrap .
Структура HTML
<div class="row junction-row">
<div class="col-6 col-sm-3">
<div class="block bg-primary"></div>
</div>
</div class="col-6 col-sm-4 offset-sm-5">
<div class="block bg-danger"></div>
</div>
</div>
CSS
.junction-row {
height: 6rem;
position: relative;
}
.junction-row::after {
content: '';
position: absolute;
background-color: var(--danger);
height: 5%;
// Default bootstrap row's padding is 1rem.
// Width = 100% - left padding of the row - right padding of the row
width: calc(100% - 2rem);
// Top = total height 100% - the height of the line, and then divide by 2
// to have the line stay in the center of the row.
top: calc((100% - 5%) / 2);
// Left = starting after the row's left padding
left: 1rem;
// Any value here, but it needs to be lower than what .block has
z-index: 1;
}
.block {
position: relative;
height: 6rem;
z-index: 2;
}
Результат
демо: https://jsfiddle.net/davidliang2008/vknor3cz/32/