最近在做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); }