为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

jeck猫 2021-12-23 19:47:21
我有以下代码,它呈现预期的表:<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类对我有用,但它似乎没有任何效果:<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 现在希望我为每一行提供一个完整的模板?<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每行渲染的元素比我预期的要多,而且所有列都是空的:<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 开发人员。
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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


<template v-slot:item.name="{ item }">

   <div class="customStyle">{{ item.name }}</div>

</template>

编辑:在您动态获取列的情况下,您可以使用已经尝试过的主体槽,但随后您将拥有整个表格主体的自定义样式。试一试如下,未经测试。


<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' 应该是一个列名数组,作为您正在动态获取的字符串。


查看完整回答
反对 回复 2021-12-23
?
MMTTMM

TA贡献1869条经验 获得超4个赞

它对我有用,不使用范围的样式。


.v-data-table > .v-data-table__wrapper > table > thead > tr > th{

     font-size: 16px !important; 

}


查看完整回答
反对 回复 2021-12-23
?
www说

TA贡献1775条经验 获得超8个赞

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


<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类对我有用,但它似乎没有任何效果:


<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 现在希望我为每一行提供一个完整的模板?


<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每行渲染的元素比我预期的要多,而且所有列都是空的:


<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 开发人员。


查看完整回答
反对 回复 2021-12-23
  • 3 回答
  • 0 关注
  • 730 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信