3

我正在使用 webpack 将 antd.less 文件导入全局 App.less 文件中。然后我覆盖了一些全局样式和 webpack 包:

// App.less
@import "~antd/dist/antd.less";
@import "./fonts.css";
@import "./reactSplitPane.css";      

@heading-color          : fade(#000, 100%);
@text-color             : fade(#000, 100%);
@text-color-secondary   : fade(#000, 100%);
@disabled-color         : fade(#000, 25%);

我的 webpack 2 配置如下所示:

    {
        test: /\.less$/,
        use: ExtractTextPlugin.extract({
            fallback: "style-loader",
            use: [
            { 
                loader: "css-loader", 
                options: { importLoaders: 1}
            },
            "less-loader"
            ]
        })
    },
    {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
            fallback: "style-loader",
            use: "css-loader"
        })
    }

现在,例如,我想覆盖 Tabs 组件的一个实例的大小。最好的方法是什么?

覆盖 Tabs-Bar 底线颜色的示例:

.ipf-appbar {
    font-size: 24px; // this applies to all text in the Tabs component
    border-bottom: 1px solid darkmagenta; // also applies to all border
}
.ant-tabs-bar {
    border-bottom: 1px solid darkmagenta; // this applies only to the desired div but is global
}

但这应该只对一个组件有效。该组件看起来像这样(Typescript):

import * as ReactDOM from "react-dom";
import * as React from "react";
import { Tabs } from "antd";
import "./AppBar.less";

export class AppBar extends React.Component<undefined, undefined> {
    render() {
        return (
            // <Tabs className="ipf-appbar">
            <Tabs>
                <Tabs.TabPane tab="Start" key="1">Start</Tabs.TabPane>
                <Tabs.TabPane tab="Projekte" key="2">Projekte</Tabs.TabPane>
            </Tabs>
        );
    }
}
4

3 回答 3

5

您应该Tabs通过添加自定义 css 类/id 来使用 css 定位组件。然后您可以在您的 css 文件中自定义该类/ID。在您添加.ipf-appbar类的特定情况下,您可以按如下方式设置特定组件的样式:

.ipf-appbar .ant-tabs-bar {
    font-size: 24px; // this applies to all text in the Tabs component
    border-bottom: 1px solid darkmagenta; // also applies to all border
}
于 2017-03-01T07:17:35.190 回答
0

css一个简单的解决方案是为该组件创建一个文件并使用相同的类覆盖样式antd

antd 默认

.ant-menu-dark .ant-menu-item,
.ant-menu-dark .ant-menu-item-group-title,
.ant-menu-dark .ant-menu-item > a,
.ant-menu-dark .ant-menu-item > span > a {
  color: rgba(255, 255, 255, 0.65);
}

定制

.ant-menu-dark .ant-menu-item,
.ant-menu-dark .ant-menu-item-group-title,
.ant-menu-dark .ant-menu-item > a,
.ant-menu-dark .ant-menu-item > span > a {
  color: #e9631a !important;
}
于 2021-01-17T09:29:50.697 回答
0
import * as ReactDOM from "react-dom";
import * as React from "react";
import { Tabs } from "antd";
import "./AppBar.less";

export class AppBar extends React.Component<undefined, undefined> {
    render() {
        return (
            <Tabs className="ipf-appbar">
                <Tabs.TabPane tab="Start" key="1">Start</Tabs.TabPane>
                <Tabs.TabPane tab="Projekte" key="2">Projekte</Tabs.TabPane>
            </Tabs>
        );
    }
}

AppBar.less:

.temp {
  @import '~antd/lib/tabs/style/index.less';

  @tabs-ink-bar-color: red;
}

.ipf-appbar {
  .temp();
}

修改后的变量适用于单个实例。它更加清晰和可扩展。

于 2022-01-18T01:51:43.770 回答