Flex: 1 означает, что каждый элемент занимает равное разделение доступного пространства во flexbox.У вас есть различное количество элементов внутри контейнера с классом gradient
, который имеет flex: 1
и обрабатывается как только один дочерний элемент из chart
flexbox.Это означает, что во втором примере вы сжимаете два набора линий / точек в пространство, предназначенное для одного, но общий размер каждого гибкого блока больше, потому что меньше дочерних элементов.
Небольшое расхождение в3-е вызвано статическими размерами точечных элементов.Наличие линии flex: 1
и статической точки занимает flex: 1
ширину + ширину точки.Помещение линии и точки в контейнер flex: 1
означает, что оно занимает только пространство, выделенное для четного деления.В первом примере вы заметите, что по этой причине первый сегмент немного меньше.
Одно из решений - сгруппировать все, что вы хотите, чтобы они были одинакового размера, в контейнеры, к которым применяется flex: 1, и контролировать прозрачность /стили с другим классом.
Я сделал пример здесь .