Так что вы, кажется, немного запутались в том, как работает flexbox. Flex следует применить к родительскому контейнеру, тогда внутренние элементы будут соответствовать выравниванию flex. Прямо сейчас у вас нет родительского элемента, который объединяет все три элемента, вы разделяете их на отдельные контейнеры.
Так что просто удалите дополнительные теги упаковки и поместите flex-элементы в один контейнер, затем примените flex к этому контейнеру. Вам также не нужно иметь flex-flow, если вы делаете строку по умолчанию, и float там не должно быть.
.flex-container {
width: 100px;
padding: 0;
margin: 0;
list-style: none;
display: flex;
transition: opacity 0.2s ease-in-out;
}
.flex-item {
text-align: center;
text-decoration: none;
color: #ffffff;
font-family: sansa_normal;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: calc(12px + (26 - 18) * ((100vw - 300px) / (1600 - 300)));
padding: 2rem;
}
.dark-box-p {
background: #8f6cda;
transition: opacity 0.2s ease-in-out;
opacity: 1;
}
.med-box-p {
background: #a68fd8;
transition: opacity 0.2s ease-in-out;
opacity: 1;
}
.light-box-p {
background: #b5a5d7;
transition: opacity 0.2s ease-in-out;
opacity: 1;
}
<div class="contentbox">
<div class="flex-container">
<div class="dark-box-p flex-item">
<span>TEST</span>
</div>
<div class="med-box-p flex-item">
<span>TEST</span>
</div>
<div class="light-box-p flex-item">
<span>TEST</span>
</div>
</div>
</div>