首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在vuetify数据表中更改字体大小和/或样式?

如何在vuetify数据表中更改字体大小和/或样式?
EN

Stack Overflow用户
提问于 2019-11-12 05:42:51
回答 4查看 2.3K关注 0票数 1

我有以下代码,它呈现预期的表:

代码语言:javascript
复制
<v-data-table
    dense
    :headers="table_headers"
    :items="table_data"
    :items-per-page="table_rows"
    :page="table_page"
    :hide-default-footer=true
    :loading="table_loading"
    class="elevation-2"
>
</v-data-table>

我原本希望添加display-2类能帮我解决这个问题,但似乎没有任何效果:

代码语言:javascript
复制
<v-data-table
    dense
    :headers="table_headers"
    :items="table_data"
    :items-per-page="table_rows"
    :page="table_page"
    :hide-default-footer=true
    :loading="table_loading"
    class="elevation-2 display-2"
>
</v-data-table>

我还尝试了下面的方法,但它只是呈现了一堆空的row元素。这并不令人震惊,因为我想vuetify现在希望我为每一行提供一个完整的模板?

代码语言:javascript
复制
<v-data-table
    dense
    :headers="table_headers"
    :items="table_data"
    :items-per-page="table_rows"
    :page="table_page"
    :hide-default-footer=true
    :loading="table_loading"
    class="elevation-2"
>
    <template v-slot:item="props">
        <tr class="display-2"></tr>
    </template>
</v-data-table>

在我的最后一次尝试中,我的代码每行呈现的td元素比我预期的要多,而且所有的列都是空的:

代码语言:javascript
复制
<v-data-table
    dense
    :headers="table_headers"
    :items="table_data"
    :items-per-page="table_rows"
    :page="table_page"
    :hide-default-footer=true
    :loading="table_loading"
    class="elevation-2"
>
    <template v-slot:body="{ items }">
        <tbody>
          <tr v-for="row in items">
            <td v-for="col in row"
                class="display-2">
                {{ col }}
            </td>
          </tr>
        </tbody>
    </template>
</v-data-table>

我做错了什么,有没有更简单的方法?

顺便说一下:我不是JavaScript开发人员。

EN

回答 4

Stack Overflow用户

发布于 2019-11-12 08:07:43

如果您没有太多的列,您可以为每个列使用一个槽,并将它们包装在带有自定义类的div中,如下所示:

代码语言:javascript
复制
<template v-slot:item.name="{ item }">
   <div class="customStyle">{{ item.name }}</div>
</template>

编辑:在您的示例中,当您动态获取列时,您可以像您已经尝试过的那样使用主体槽,但随后您将拥有整个表体的自定义样式。试一试,如下所示,它是未经测试的。

代码语言:javascript
复制
<template v-slot:body="{ items }">
  <tr v-for="item in items" :key="item.id" class="customClass">
    <td v-for="col in cols">
      {{ item.col }}
    </td>
  </tr>
</template>

“‘cols”应该是您动态获取的字符串形式的列名数组。

票数 0
EN

Stack Overflow用户

发布于 2021-02-24 11:17:32

重要的是你不要使用‘作用域’样式。

代码语言:javascript
复制
    <style>
        .my_class td{
            font-size: small!important;
            height: 0!important;
            padding: 1px!important;
        }
    </style>

v-data-table必须是指定的类'my- class‘

代码语言:javascript
复制
    <v-data-table class="my-class" :items="my_output"  >
    </v-data-table>
票数 0
EN

Stack Overflow用户

发布于 2021-03-25 15:28:27

它适用于我,不要使用样式作用域。

代码语言:javascript
复制
.v-data-table > .v-data-table__wrapper > table > thead > tr > th{
     font-size: 16px !important; 
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58809069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档