Je veux créer une page vue qui a deux tableaux de données qui remplissent la moitié de l'écran (verticalement). Chaque tableau de données devrait avoir une barre de défilement si nécessaire.
J'ai essayé le balisage ci-dessous, mais cela ne dimensionne pas les tableaux de données à la taille de l'écran. Voici un exemple coden
<div id="app">
<v-app id="inspire">
<v-container fluid grid-list-md fill-height>
<v-layout column>
<v-flex md6>
<v-data-table
:headers="headers"
:items="desserts"
hide-actions
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td>{{ props.item.name }}</td>
<td class="text-xs-right">{{ props.item.calories }}</td>
<td class="text-xs-right">{{ props.item.fat }}</td>
<td class="text-xs-right">{{ props.item.carbs }}</td>
<td class="text-xs-right">{{ props.item.protein }}</td>
<td class="text-xs-right">{{ props.item.iron }}</td>
</template>
</v-data-table>
</v-flex>
<v-flex md6>
<div>
<v-data-table
:headers="headers"
:items="desserts"
hide-actions
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td>{{ props.item.name }}</td>
<td class="text-xs-right">{{ props.item.calories }}</td>
<td class="text-xs-right">{{ props.item.fat }}</td>
<td class="text-xs-right">{{ props.item.carbs }}</td>
<td class="text-xs-right">{{ props.item.protein }}</td>
<td class="text-xs-right">{{ props.item.iron }}</td>
</template>
</v-data-table>
</div>
</v-flex>
</v-layout>
</v-container>
</v-app>
</div>
Pour obtenir le résultat, je devais régler la hauteur à 100vh sur la mise en page et régler le débordement sur chaque flex. J'ai mis à jour le codepen en question
<div id="app">
<v-app id="inspire">
<v-container>
<v-layout column style="height: 90vh"> <--- added height
<v-flex md6 style="overflow: auto"> <--- added overflow
<v-data-table
:headers="headers"
:items="desserts"
hide-actions
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td>{{ props.item.name }}</td>
<td class="text-xs-right">{{ props.item.calories }}</td>
<td class="text-xs-right">{{ props.item.fat }}</td>
<td class="text-xs-right">{{ props.item.carbs }}</td>
<td class="text-xs-right">{{ props.item.protein }}</td>
<td class="text-xs-right">{{ props.item.iron }}</td>
</template>
</v-data-table>
</v-flex>
<v-flex md6 style="overflow: auto"> <--- added overflow
<v-data-table
:headers="headers"
:items="desserts"
hide-actions
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td>{{ props.item.name }}</td>
<td class="text-xs-right">{{ props.item.calories }}</td>
<td class="text-xs-right">{{ props.item.fat }}</td>
<td class="text-xs-right">{{ props.item.carbs }}</td>
<td class="text-xs-right">{{ props.item.protein }}</td>
<td class="text-xs-right">{{ props.item.iron }}</td>
</template>
</v-data-table>
</v-flex>
</v-layout>
</v-container>
</v-app>
Même s'il a déjà été répondu. Je vois que la réponse ci-dessus n'est pas orthographiée correctement. Voici l'exemple de code correct pour cela.
<v-responsive
class="overflow-y-auto"
max-height="calc(90vh - 520px)">
</v-responsive
Ou
</v-data-table
>
<template v-slot:body>
<v-responsive
class="overflow-y-auto"
max-height="calc(90vh - 520px)"
>
<tbody>
<tr>
<td>example</td>
<td><strong>test example</strong></td>
</tr>
</tbody>
</v-responsive>
</template>
</v-data-table>