#javascript #vue.js #vue-component #vuetify.js
#javascript #vue.js #vue-компонент #vuetify.js
Вопрос:
Мне нужно выровнять компонент Vuetify по вертикали и горизонтали
Версии
vue 2.6.10 vuetify 2.1.10
Это текущий код компонента Snackbar
<v-snackbar
class="no-shadow"
v-model="snackbarShow"
:color="snackbarType"
:timeout="snackbarTimeout"
>
<v-icon class="mr-3">{{ snackbarIcon }}</v-icon>
<div>{{ snackbarText }}</div>
<v-btn text icon color="white" @click="snackbarShow = false">
<v-icon color="white">mdi-close-circle</v-icon>
</v-btn>
</v-snackbar>
Ответ №1:
v2
<v-snackbar centered />
v3
<v-snackbar v-model="snackbar" timeout="5000" location="center">
Комментарии:
1. Наличие этого свойства centered выравнивает его только по горизонтали, но не по вертикали, то есть я остаюсь в центре, но внизу страницы
2.@JorgeGatica
Positions the snackbar in the center of the screen, (x and y axis).
vuetifyjs.com/en/api/v-snackbar/#props3. Хотя верно, что centered должен, в паре с absolute , центрироваться по вертикали… У меня были проблемы, когда использование absolute вместе с centered не работало. Поэтому попробуйте удалить абсолютную опору, чтобы центрировать ее, если она все еще остается сверху / снизу.
4. Для версии v3: <v-snackbar v-model=»snackbar» timeout=»5000″ location=»center»>
Ответ №2:
Причина, по которой snackbar сложно выровнять по вертикали, в основном потому, что он не предназначен для этого. Vuetify — это всего лишь одна из реализаций спецификации Google Material Design. Лично я люблю Vuetify и часто использую его, но помните, что это всего лишь библиотека компонентов, поэтому их документация в основном посвящена использованию компонентов, без указаний на то, какой компонент использовать или когда вы должны или не должны использовать конкретный компонент. Вот почему я всегда ссылаюсь material.io для получения этой информации, чтобы убедиться, что я не просто собираю воедино материальные компоненты таким образом, который нарушает правила материального дизайна.
Как вы можете видеть здесь: https://material.io/components/snackbars закусочные специально должны находиться в нижней части экрана.
Чтобы получить нужный вам стиль, компонент пользовательского интерфейса, который вы хотите использовать в библиотеке Vuetify, является v-dialog
. https://vuetifyjs.com/en/components/dialogs/По сути, он просто центрирует компонент (обычно карточку) по горизонтали и вертикали, предоставляя простой способ привязать его видимость к реквизиту и даже дает вам hide-overlay
реквизит. Таким образом, используя этот компонент, вы можете получить нужный вам стиль практически «из коробки». Просто убедитесь, что размещение компонента в мертвой точке пользовательского интерфейса не приводит к ухудшению пользовательского интерфейса. Material.io содержит несколько отличных рекомендаций по выбору правильного компонента для правильной задачи: https://material.io/components/dialogs#usage
Комментарии:
1. Я имею в виду, вы все равно можете центрировать snackbar. И это даже не сложно, просто добавьте
centered
реквизит.