Я бы содержал все кнопки в div, а затем каждую кнопку и группу меток в своем собственном div.
<div id='button-row'>
<div class='bottom-button>
<button></button>
<p class='label>Label</p>
</div>
<div class='bottom-button>
<button></button>
<p class='label>Label</p>
</div>
// repeat for your buttons
</div>
Ваш css:
.button-row {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.bottom-button {
display: flex;
flex-direction: column;
justify-content: center;
// the font awesome icons are considered text I believe, so
text-align: center;
// would also work
}
Это сделает все ваши кнопки в ряду равномерно расположенными, и разместит вашу кнопку сверху надписи. Мне нравится использовать flexbox, потому что он быстрый и простой и мобильный, отзывчивый. Я ни в коем случае не профессионал CSS, но у меня это работает.
Редактировать: только что увидел вашу разметку. Попробуйте дать отформатированной строке css of .bottom-button и посмотрите, сработает ли это.