Quasar Framework предоставляет мощный набор инструментов для создания адаптивных интерфейсов, позволяя легко управлять отображением компонентов на разных устройствах и разрешениях экрана. Основой этой функциональности являются адаптивные классы, которые применяются к элементам для управления их видимостью, размерами и поведением в зависимости от ширины экрана.
Адаптивные классы Quasar строятся на системе breakpoints, аналогичной CSS Media Queries. Quasar по умолчанию использует следующие точки останова:
xs — мобильные устройства (0–599px)sm — маленькие планшеты (600–1023px)md — большие планшеты / маленькие ноутбуки
(1024–1439px)lg — десктопы (1440–1919px)xl — крупные экраны (1920px и выше)Каждый класс адаптивности указывает, на каких устройствах будет действовать стиль, и может включать модификаторы видимости или размеры.
Quasar предоставляет классы для управления видимостью компонентов на разных устройствах:
hidden-{breakpoint}-{condition}visible-{breakpoint}-{condition}Где {breakpoint} — одна из точек останова
(xs, sm, md, lg,
xl), а {condition} — only,
and-up, and-down.
Примеры:
hidden-xs-only — элемент скрыт только на устройствах с
шириной xs.hidden-md-and-up — элемент скрыт на устройствах
md, lg, xl.visible-sm-and-down — элемент видим только на
устройствах sm и меньших.Эти классы позволяют гибко управлять компонентами без написания дополнительных CSS.
Quasar поддерживает классы для изменения размеров и отступов в зависимости от брейкпоинта:
q-mt-md — верхний отступ на устройствах md
и выше.q-pt-sm — внутренний верхний padding на устройствах
sm и выше.q-gutter-lg — отступ между элементами в сетке на
больших экранах.Ключевой особенностью является возможность комбинирования нескольких классов для разных точек останова, создавая полностью адаптивный интерфейс.
Quasar предоставляет компонент <q-layout> и
систему <q-page-container> с встроенной адаптивной
сеткой, где размеры колонок управляются классами:
col-{breakpoint}-{size} — задаёт ширину колонки в
процентах (1–12).offset-{breakpoint}-{size} — задаёт смещение
колонки.Пример:
<q-row>
<q-col cols="12" sm="6" md="4">
Контент колонки
</q-col>
<q-col cols="12" sm="6" md="8">
Контент второй колонки
</q-col>
</q-row>
В этом примере колонки будут адаптироваться под ширину экрана: на
мобильных (xs) занимают всю ширину, на sm
делятся пополам, на md первая занимает 1/3, а вторая —
2/3.
Классы видимости и размеры можно комбинировать для создания сложных адаптивных макетов:
<q-btn
class="hidden-xs-only q-mt-md q-px-lg"
label="Кнопка адаптивная"
color="primary"
/>
hidden-xs-only скрывает кнопку на мобильных
устройствах.q-mt-md добавляет верхний отступ на планшетах и
выше.q-px-lg увеличивает горизонтальные отступы на больших
экранах.Такой подход позволяет полностью отказаться от кастомных медиа-запросов в CSS.
$q.screenДля более сложной логики отображения компонентов Quasar предоставляет
объект $q.screen, который отражает текущие параметры
экрана:
$q.screen.width — ширина окна в пикселях$q.screen.height — высота окна$q.screen.gt.sm — true, если ширина больше
sm$q.screen.lt.md — true, если ширина меньше
md$q.screen.xs — true, если текущий экран
xsПример динамического рендера кнопки:
<q-btn v-if="$q.screen.gt.sm" label="Только на больших экранах" color="secondary" />
Использование $q.screen позволяет программно
адаптировать интерфейс, включая или скрывая элементы в зависимости от
размеров экрана.
$q.screen, чтобы
управлять рендером и поведением компонентов динамически.xs и xl.Использование адаптивных классов в Quasar значительно ускоряет разработку интерфейсов, упрощает поддержку и делает приложение готовым к любому устройству без дополнительных CSS медиа-запросов.