react中修改antd的默认样式

最近在做react+antd项目。不可避免的遇到了修改antd默认样式的问题。

比如,table组件的表头背景色设置,如果直接使用元素样式,会修改整个项目的table。这里我用的方法是,给table添加一个div父元素,给他设置个className,然后设置这个样式内的table表头样式。

我使用的.less预编译。

              <div className={styles.boxW} >
                    <Table 
                      columns={colType}
                      rowKey='fxwd'
                      pagination={false}
                      bordered
                      dataSource={dataType}
                    />
              </div>
.boxW,.normalB {
    :global {
        .ant-table-thead > tr > th, .ant-table-tbody > tr > td {
            padding: 8px 8px !important;
        }
        .ant-table-thead > tr > th {
            background-color: rgb(192, 244, 248);
        }
        .ant-table-thead > tr > th:hover {
            background-color: rgb(192, 244, 248);
        }
        .ant-table-thead > tr > th.ant-table-column-has-actions.ant-table-column-has-sorters:hover {
            background: rgb(192, 244, 248);
        }
    }
}

这样就可以只修改到当前文件里table的样式了。

这里顺便记录一下.less的样式继承,通过(&:extend(被继承class名))。

.boxW {
    min-width: 1150px;
}

.normalB {
    &:extend(.boxW);
    &:extend(.boxBorder);

}

 

posted @ 2019-04-30 17:12  牛牛的天空  阅读(13369)  评论(2编辑  收藏  举报