Как указано, v-layout
применяет стиль flex: 1 1 auto
к каждому элементу / шагу. Первое значение для сокращенного свойства flex
равно flex-grow
, которое при значении 1 означает, что элемент будет расширяться, чтобы заполнить все доступное пространство. Это означает, что контейнер для вашего последнего шага занимает 1/5 (для 5 шагов) доступной ширины. Поскольку содержимое вашего последнего шага содержит только выровненный по левому краю значок / текст, в конце вы получите вид белого пространства. Простым подходом было бы помешать вашему последнему шагу расти и, таким образом, занимать равную ширину с другими шагами.
Я не смог найти способ управления свойством flex-grow
с помощью реквизитов, предоставленных Veutify, но вы можете переопределить свойство самостоятельно на каждом шаге следующим образом:
<v-layout align-center v-for="(item, index) in stepperInfo" v-bind:key="index" v-bind:style="{'flex-grow': index === (stepperInfo.length - 1) ? 0 : 1}">
Однако это будет без необходимости применять flex-grow: 1
ко всем шагам, кроме последнего. Есть несколько способов исправить это, например, перевести flex-grow: 0
в класс last-step
, который применяется только к последнему шагу, как показано в этом codepen :
<v-layout align-center v-for="(item, index) in stepperInfo" v-bind:key="index" v-bind:class="{'last-step': index === (stepperInfo.length - 1)}">
Вы также можете использовать селектор :last-child
CSS только для подхода CSS, как показано в этом codepen . Примените steps
класс к родителю v-layout
:
<v-layout row style="padding: 25px 0;" class="steps">
И добавьте следующий CSS для установки flex-grow: 0
в последнем непосредственном дочернем элементе .steps
элемента:
.steps >:last-child {
flex-grow: 0 !important;
}