Компонент v-col в Vuetify используется для построения адаптивной сетки и является частью системы v-row / v-container. Он предназначен для управления шириной колонок, их порядком и поведением на различных разрешениях экрана. Основная идея заключается в гибком распределении пространства в пределах строки.
Базовый синтаксис:
<v-row>
<v-col cols="12" sm="6" md="4">
Контент колонки
</v-col>
</v-row>
Здесь:
cols="12" — ширина колонки на маленьких экранах
(мобильные устройства), занимает всю ширину строки.sm="6" — на экранах sm (≥600px) колонка
занимает половину строки.md="4" — на экранах md (≥960px) колонка
занимает треть строки.v-col поддерживает несколько способов задания ширины:
По количеству колонок (cols)
Значение от 1 до 12. Определяет, сколько частей из 12 займет
колонка.
<v-col cols="3">Колонка 3/12</v-col>Адаптивные пропорции (sm, md,
lg, xl) Позволяют задавать разные
размеры для разных брейкпоинтов.
<v-col sm="6" md="3" lg="2">Адаптивная колонка</v-col>Автоматическое выравнивание (auto)
Колонка принимает ширину по содержимому.
<v-col cols="auto">Ширина по контенту</v-col>v-col поддерживает вертикальное и горизонтальное выравнивание в пределах строки. Для этого используется комбинация с v-row и утилитами выравнивания:
<v-row align="center" justify="space-between">
<v-col cols="4">Левый блок</v-col>
<v-col cols="4">Центр</v-col>
<v-col cols="4">Правый блок</v-col>
</v-row>
align — вертикальное выравнивание (start,
center, end, stretch).justify — горизонтальное распределение
(start, center, end,
space-between, space-around,
space-evenly).Параметр order управляет порядком отображения колонок
независимо от их положения в коде. Может быть задан как числом, так и
адаптивно:
<v-row>
<v-col cols="4" order="2">Вторая колонка</v-col>
<v-col cols="4" order="1">Первая колонка</v-col>
</v-row>
Адаптивная настройка:
<v-col sm="6" order-sm="1" order-md="2">Адаптивный порядок</v-col>
Компонент v-col использует систему
gutter через свойства строки (v-row).
Дополнительно можно управлять внешними и внутренними отступами через
классы утилит:
pa-2 — внутренние паддингиma-3 — внешние отступыpx-4 — горизонтальные паддингиpy-1 — вертикальные паддингиПример:
<v-row>
<v-col cols="6" class="pa-4">Контент с паддингом</v-col>
</v-row>
v-col поддерживает вложенные строки для построения сложной сетки:
<v-row>
<v-col cols="8">
<v-row>
<v-col cols="6">Внутренняя колонка 1</v-col>
<v-col cols="6">Внутренняя колонка 2</v-col>
</v-row>
</v-col>
<v-col cols="4">Внешняя колонка</v-col>
</v-row>
Такой подход позволяет строить многоуровневые сетки без потери адаптивности и контроля над порядком элементов.
Для управления видимостью на разных устройствах используются классы
d-{breakpoint}-{display}:
<v-col cols="12" class="d-none d-md-flex">
Видно только на md и выше
</v-col>
d-none — скрытьd-flex, d-block,
d-inline-block — показать с нужным типом отображенияcols, адаптивные брейкпоинты и
order для гибкого управления макетом.Эта комбинация возможностей делает v-col мощным инструментом для построения полностью адаптивных интерфейсов в Vuetify.