Возможно, вы задаете фиксированную высоту блокам. А этого в верстке стараются не делать.
Если дело не в этом, то стоит вспомнить или поизучать геометрию, пропорции.
1. Фон это один сплошной цвет. background-color
2. Вертикальная полоса - вертикальная граница одного из блоков.
3. 2 блока рядом ставятся с помощью display:flex (или grid) для родителя.
4. float придуман не для того, для чего вы пытаетесь его использовать.
1. Да если ширина зависит детей, а дети от ширины родителя , выйдет ерунда.
2. 3 бутстрап не мешает использовать свои стили и не обязывает всюду использовать только его.
3. Флоаты вообще не для этого
Дмитрий Калинин, по тому куску кода, который в вопросе, предположить можно что угодно.
Делайте песочницы с кодом и воспроизводимой проблемой, разночтений будет меньше.
Зависит от идей дизайнера при адаптиве и функциональности этой штуки.
Если они просты, то одной SVG, текст можно внутрь SVG или абсолютом.
Если они перестраиваются, кликабельны, то разбить на пачку SVG.
По аналогии с ответом про кнопку бургер/крестик.
С скрипт добавляете точно такой же переключатель класса еще и для навбара.
Класс есть - открыто.
Класса нет - закрыто.
Или наоборот :)
Сюда его: jsfiddle.net или codepen.io