bootstrap-vue表td元素样式

Are*_*ham 0 html html-table vue.js bootstrap-vue

我给<td>b-table元素的标签赋予样式有问题。

这是模板:

    <b-table
      :fields="fields"
      :items="items"
      class="mx-1 mt-2"
      v-if="items && items.length > 0"
    >
      <template
        slot="email"
        slot-scope="row"
      >
        <div :title="row.item.email">
          <p class="user-email">{{row.item.email}}</p>
        </div>
      </template>
    </b-table>
Run Code Online (Sandbox Code Playgroud)

这是字段:

    fields: [
      { key: "email", label: "Email"},
      { key: "user", label: "Name" },
      { key: "role", label: "Role" }
    ],
Run Code Online (Sandbox Code Playgroud)

我想给<td>此表的最大宽度为300px 。请帮忙!

小智 10

在这里:https ://bootstrap-vue.js.org/docs/components/table/ 您可以阅读:“class、thClass、tdClass 等不适用于在作用域 CSS 中定义的类”。所以这可能是它对你不起作用的情况。如果你想为你的头设计样式,你可以在你的字段对象中使用 thStyle 属性,即:

{
   key: 'test', label: 'Test', thStyle: { backgroundColor: '#3eef33'}
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。


Jns*_*Jns 5

您可以tdClass在字段对象中设置属性。但是tdClass只接受一个字符串或一个数组,而不是一个对象。因此,您只能引用CSS类。

fields: [
      { key: "email", label: "Email", tdClass: 'nameOfTheClass'},
      { key: "user", label: "Name" , tdClass: 'nameOfTheClass'},
      { key: "role", label: "Role" , tdClass: 'nameOfTheClass'}
]
Run Code Online (Sandbox Code Playgroud)

并在您的CSS中:

.nameOfTheClass {
   max-width: 300px;
}
Run Code Online (Sandbox Code Playgroud)

  • 您的&lt;style&gt;标签是否具有scoped属性? (3认同)

Cha*_*mbo 5

我设法让它为我工作的唯一方法是在桌面上使用 Vue 的深度选择器并定位 td 标签。

<style lang="css" scoped>
/* ::v-deep/ .table > tbody > tr > td { */
/deep/ .table > tbody > tr > td {
max-width: 300px;
}
</style>
Run Code Online (Sandbox Code Playgroud)

我希望这对那里的人有帮助。!!