组件'mat-table'和指令"<表垫表>"有什么区别?


<mat-table>
<table mat-table ...>

我发现了一个类似的问题,我应该使用"<桌垫桌子......"或">

请注意,此方法意味着您不能包含某些本机表>功能(如 colspan/rowspan(,也不能包含根据其内容调整自身大小的列>。

但我不明白是什么:

或者具有根据其内容调整自身大小的列 方法。

您能否举个例子,正在调整大小的列是什么?

最终,我想在移动设备上实现表格的正确显示(使用 mat-table 组件这更容易做到,因为他使用 Flex(,下面是这个 https://stackblitz.com/edit/angular-mohmt5?file=app%2Ftable-basic-example.ts 的示例 鉴于上述说明,我想立即了解可能遇到的困难。

从源中,如果您看到指令的选择器可以用作元素mat-table或用作表table[mat-table]的属性

@Component({
...
selector: 'mat-table, table[mat-table]',
...
})
export class MatTable<T> extends CdkTable<T> {}

选项 1mat-table:当您用作元素时,它使用 CSS 弹性框属性来对齐您的数据/表格,因此当您有很长的文本时,除非另有指定,否则它不会自动调整大小。请注意,使用此选项,您必须在rowspancolspan上妥协,例如,如果需要,您无法跨越行/列

堆栈闪电战:https://stackblitz.com/edit/angular-prq2ju

选项 2table[mat-table]:当您用作 html 表的属性时,td 会根据单元格依次根据列自动调整其内容的大小。所以整列得到宽度

堆栈闪电战:https://stackblitz.com/edit/angular-pxpwet


现代方法是使用 Option-1 CSS 弹性框方法,但如果单元格中的内容很长,您可以将列宽指定为大量内容,但如果您不想遇到很多麻烦,您可以将其与选项 2 本机 html table/tr/td 一起使用

最新更新