est-il possible de faire en sorte que le dialogue en v ait une largeur dynamique? Actuellement, le v-dialog a par défaut une hauteur dynamique qui le raccourcit et s'allonge en fonction de la longueur du contenu.
Mais cela peut-il être fait avec la largeur?
J'ai une boîte de dialogue qui contient 4 onglets. 3 de ces onglets ne nécessitent pas beaucoup de largeur, mais le dernier onglet contient un tableau, je voudrais donc que la boîte de dialogue s'élargisse autant que nécessaire, pour tenir compte du tableau, puis raccourcir à nouveau en cliquant sur l'un des premiers 3 onglets.
Vuetify v-dialog: https://vuetifyjs.com/en/components/dialogs
5 Réponses :
Parlez-vous de cette partie?:
<v-dialog v-model="dialog" width="500" >
Si c'est le cas, pourquoi ne pas supprimer la partie width = "500"
et partir sans? J'ai testé et ça s'étire dynamiquement. Cette option n'est pas obligatoire et rien ne casse si vous la supprimez.
Si j'ai mal compris quelque chose, n'hésitez pas à ajouter plus de détails.
C'est correct, mais si je supprime la largeur, la boîte de dialogue étend tout l'écran.
Je pense que vous recherchez la propriété plein écran (booléen) ou, selon les besoins, la propriété max-width (Number) .
En définissant l'un de ceux-ci, vous contrôlez la largeur du dialogue en V en fonction de l'élément environnant. La largeur de l'élément environnant peut être ajustée via css, par ex. flexbox.
Actuellement, la largeur maximale est définie sur 900px, ce qui convient à la table, mais lors de l'ouverture d'une autre table, la boîte de dialogue ne s'ajuste pas et devient plus étroite. Il est fixé sur 900px en permanence.
Définir la largeur sur "non défini" semble fonctionner, je n'ai pas encore découvert d'effets secondaires négatifs.
.v-dialog { width: unset; }
ou CSS
<v-dialog v-model="dialog" width="unset"> <YourDialogContent></YourDialogContent> </v-dialog>
p>
C'est ce que je recherchais, car ne pas définir de largeur du tout étirait automatiquement mes boîtes de dialogue à la largeur plein écran. Je vous remercie!
Écrivez des règles CSS personnalisées et ne définissez pas d'accessoires width
ou max-width
. par exemple:
J'utilise une classe personnalisée afin de ne pas appliquer de règles à tous les v-dialog
:
.v-dialog--custom { width: 100%; } /* Desktop */ @media screen and (min-width: 768px) { .v-dialog--custom { width: 50%; } }
Et créer vos règles personnalisées:
<v-dialog v-model="dialog" content-class="v-dialog--custom"> <!-- dialog content --> </v-dialog>
Vous pouvez voir ceci sur codepen: https://codepen.io/hans-felix/pen/BajByxx
Comment avez-vous calculé que pour qu'un écran soit un bureau, il devrait être de 768 pixels ou plus?
Je voudrais donc que la boîte de dialogue s’élargisse autant que nécessaire , pour tenir compte du tableau, puis se raccourcisse à nouveau en cliquant sur l’un des 3 premiers onglets.
Pour le bureau, nous pouvons définir facilement la largeur dynamique pour v-dialog
en fonction du contenu de la boîte de dialogue, en définissant manuellement width = "auto"
(avec plus d'espace).
<template> <v-dialog width="auto " :fullscreen="$vuetify.breakpoint.xsOnly"> ... </v-dialog> </template>
En raison de l'espace limité, les boîtes de dialogue plein écran peuvent être plus appropriées pour les appareils mobiles que les boîtes de dialogue utilisées sur appareils avec des écrans plus grands. Mais vous devez définir la boîte de dialogue en plein écran uniquement sur les appareils mobiles. Nous pouvons facilement définir un plein écran dynamique en utilisant Vuetify points d'arrêt comme:
<template> <v-dialog :fullscreen="$vuetify.breakpoint.xsOnly"> ... </v-dialog> </template>
Nous pouvons combiner les deux logiques en une seule comme:
<template> <v-dialog width="auto "> ... </v-dialog> </template>
Sur le bureau strong >
Sur mobile
Bien que cette solution fonctionne, je déconseille de l'utiliser. La valeur de largeur "auto" n'est pas prise en charge par vuetify et n'est qu'une valeur invalide. Vous pouvez même utiliser width = "asdf" et le comportement serait - involontairement - le même. Ainsi, il n'y a aucune garantie que votre code continuera à fonctionner dans les futures versions de vuetify.
pourriez-vous créer un codepen pour cela? Vous pouvez essayer de jouer avec la largeur maximale et minimale, ou essayer des trucs avec un remplissage, mais je ne peux pas le dire sans votre code