J'ai deux flex à l'intérieur d'un v-layout (fill-height). Problème: Le second flex est aligné sur la fin attendue, mais le premier flex n'occupe pas le reste de l'espace disponible.

  <v-container>
      <v-layout row wrap fill-height>
        <v-flex
          xs12
          class="white--text green darken-3"
        >
            <v-card-text>I should occupy rest of the available space</v-card-text>
        </v-flex>
        <v-flex
          xs12
          align-self-end
          class="white--text blue darken-3"
        >   

        </v-flex>
      </v-layout>
    </v-container>

Codepen:

https://codepen.io/adatdeltax/pen/MWaapYR?editors=1000

Je suis nouveau dans vuetify et au-dessus de codepen, c'est ce que j'ai essayé jusqu'à présent, y a-t-il un moyen de faire en sorte que flex1 occupe le reste de l'espace disponible.

1
Akshay D 14 avril 2020 à 14:13

2 réponses

Meilleure réponse

Avec Vuetify 1.5 :

Utilisez column, puis supprimez l'accessoire xs12. Ensuite, la réduction / croissance fonctionnera comme prévu ( pas de CSS ou de styles en ligne supplémentaires ):

<div id="app">
  <v-app id="inspire">
    <v-container>
      <v-layout column fill-height>
        <v-flex
          grow
          class="white--text green darken-3"
        >
            <v-card-text>
              I should occupy rest of the available space
            </v-card-text>
        </v-flex>
        <v-flex
          shrink
          align-self-end
          class="white--text blue darken-3"
        >   
            <v-card-text>
              I should stay here
            </v-card-text>
        </v-flex>
      </v-layout>
    </v-container>
  </v-app>
</div>

1.5 Démo: https://codeply.com/p/JjD6UZdtjU


Avec Vuetify 2.x :

Fonctionne de la même manière sauf que v-row, v-col est utilisé à la place de v-layout, v-flex:

<div id="app">
    <v-app>
        <v-container class="fill-height">
            <v-row class="no-gutters flex-wrap flex-column fill-height">
                <v-col cols="auto" class="grow pink pa-2">
                    <h1>Content</h1>
                </v-col>
                <v-col cols="auto" class="shrink blue pa-2"> Footer </v-col>
            </v-row>
        </v-container>
    </v-app>
</div>

Démo 2.x: https://codeply.com/p/07CA4jZNAl

2
Zim 14 avril 2020 à 13:16

Ma solution est:

<v-layout column wrap fill-height>
  <v-flex
    style="flex:1"
    xs12
    class="white--text green darken-3"
  >
  </v-flex>
  <v-flex
    style="flex:0; width: 100%"
    xs12
    align-self-end
  >
    <v-card
      dark
      color="blue darken-1"
     >
      <v-card-text>I should stay here</v-card-text>
    </v-card>
  </v-flex>
</v-layout>
0
BeHappy 14 avril 2020 à 11:39