可以为Office Fabric DetailsList列标题设置样式吗?

时间:2018-12-04 19:54:10

标签: office-ui-fabric

我正在浏览办公结构文档,似乎有关于如何设置DetailsList中项目/内容样式的明确信息(https://developer.microsoft.com/en-us/fabric#/components/detailslist/customitemcolumns有一个示例),但是没有有关如何设置列标题的信息(还是有可能)。

这似乎是一个很常见的用例(我试图将列标题居中而不是使其对齐并使其变大),所以不确定我是否只是缺少一些东西?

3 个答案:

答案 0 :(得分:2)

自定义列标题的一种方法是通过onRenderDetailsHeader事件覆盖标题的呈现,然后使用自定义样式呈现标题工具提示,如下所示

<DetailsList
    items={sortedItems as any[]}
    setKey="set"
    columns={columns}
    onRenderDetailsHeader={this.renderDetailsHeader}
  />


private renderDetailsHeader(detailsHeaderProps: IDetailsHeaderProps) {
    return (
      <DetailsHeader
        {...detailsHeaderProps}
        onRenderColumnHeaderTooltip={this.renderCustomHeaderTooltip}
      />
    );
  }

  private renderCustomHeaderTooltip(tooltipHostProps: ITooltipHostProps) {
    return (
      <span
        style={{
          display: "flex",
          fontFamily: "Tahoma",
          fontSize: "14px",
          justifyContent: "center",
        }}
      >
        {tooltipHostProps.children}
      </span>
    );
  }

Demo

答案 1 :(得分:0)

IColumn接口具有一个名为headerClassName的属性,可用于设置列标题的样式。示例:

/* CSS */
.headerClass > span {
    /* right aligned header should have padding */
    padding-right: 15px;
}

.headerClass span {
   /* bolder font */
   font-weight: 900;

   /* Right Align the column header */
   justify-content: flex-end;
   text-align: right;

   /* green color */
   color: green;

   /* background color */
   background: pink;
}
//JSX
const columns = [
  {
    key: 'column1',
    name: 'Name',
    fieldName: 'name',
    minWidth: 100,
    maxWidth: 200,
    isResizable: true,
    heaerClassName: 'headerClass',
  },
  {
    key: 'column2',
    name: 'Value',
    fieldName: 'value',
    minWidth: 100,
    maxWidth: 200,
    isResizable: true,
  },
];

<DetailsList
  items={items}
  columns={columns}
  setKey='set'
/>

Demo

答案 2 :(得分:0)

您可以使用 IDetailsColumnStyles 界面设置列标题的样式。

示例:

...

  const headerStyle: Partial<IDetailsColumnStyles> = {
    cellTitle: {
      color: "#c00"
    }
  }

  const columns: IColumn[] = [
    { styles: headerStyle, key: 'name', name: 'Name', fieldName: 'name', minWidth: 120 },

...

查看 IDetailsColumnStyles 的定义,以了解可以设置样式的方式。