В настоящее время в продукты.vue у меня есть массив productList, содержащий 4 объекта. Я пройдусь по массиву и передам каждый отдельный объект компоненту ProductsItem.vue. В этом компоненте я создаю карты с помощью vuetify.
Я не могу выровнять содержимое по центру карты.
Вот мой код, скриншот моих карт и желаемый результат
Продукты.vue
<template>
<div>
<h1>Products</h1>
<v-container class = "my-5">
<v-layout row wrap>
<v-flex xs12 sm6 md4 v-for = "productItem in productList"
:key = "productItem.id">
<ProductItems :productItem = "productItem"/>
</v-flex>
</v-layout>
</v-container>
</div>
</template>
<script>
import ProductItems from "@/components/ProductItems";
export default {
data() {
return {
productList: [
{
id: 1,
name: "Superdry",
description: "Rookie Aviator Patched Bomber"
},
{
id: 2,
name: "SuperHot",
description: "Rookie Aviator Patched Bomber"
},
{
id: 3,
name: "Buron MensWear",
description: "Skinny Fit Oxford Shirt In White"
},
{
id: 4,
name: "Asos",
description: "slim shirt with stretch in blue"
}
]
};
},
components: {
ProductItems
}
}
</script>
ProductItem.vue
<template>
<v-card flat class = "ma-3 text-xs-center">
<v-img src = "https://cdn.vuetifyjs.com/images/cards/desert.jpg" aspect-
ratio = "2.75"></v-img>
<v-card-title primary-title>
<div>
<h3 class = "headline pink--text text--accent-2">
{{productItem.name}}</h3>
<div>{{productItem.description}}</div>
</div>
</v-card-title>
<v-card-actions>
<v-btn flat color = "orange">Add to Cart</v-btn>
</v-card-actions>
</v-card>
</template>
<script>
export default {
props: ["productItem"],
data() {
return {};
}
};
</script>
<style>
</style>
@Toodoo Конечно, дай мне секунду
Возможный дубликат vuetify элементы центра в v-flex
@Toodoo Привет, я не знаю, как пользоваться CodePen. Следовательно, вместо того, чтобы использовать два компонента, я объединяю их в один компонент. Кроме того, карты жестко запрограммированы вместо использования цикла for, и изображения не отображаются. Вот ссылка: codepen.io/neo-tian-how/pen/KYNwBZ?editors=1100
@Issaki в вашей кодовой ручке заголовок расположен по центру. Какую часть вы хотите централизовать?
@DjSh Описание товара и кнопка
@Djsh Название также не по центру, когда я смотрю на свой Codepen.
Обновлять: работает в обеих версиях Vuetify 1.5 и 2:
Чтобы централизовать v-card-text
контент, просто примените class=text-center
v-card-title
и v-card-actions
являются компонентами сгибаться, поэтому, добавив class = "justify-center"
к обоим, вы можете централизовать все это:
<v-card-title primary-title class = "justify-center">
<div>
<h3 class = "headline pink--text text--accent-2">Superdry</h3>
<div>Rookie Aviator Patched BomberproductItem.description</div>
</div>
</v-card-title>
<v-card-actions class = "justify-center">
<v-btn flat color = "orange">Add to Cart</v-btn>
</v-card-actions>
пожалуйста. На самом деле вам даже не нужно class = "text-xs-center"
, поэтому я удалил его из своего ответа.
you can also use v-spacer to center components in v-card
<v-card-title>
<v-spacer />
<div class = "text-center">
<h3 class = "headline pink--text text--accent-2">Headline</h3>
<div>Some description about the headline</div>
</div>
<v-spacer />
</v-card-title>
<v-card-actions>
<v-spacer />
<v-btn color = "orange">Some Button</v-btn>
<v-spacer />
</v-card-actions>
Не могли бы вы предоставить CodePen или JsFiddle, пожалуйста?