1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 引入antd组件样式_CSS Modules 配置 及 Antd 组件样式重写

引入antd组件样式_CSS Modules 配置 及 Antd 组件样式重写

时间:2024-05-31 08:25:17

相关推荐

引入antd组件样式_CSS Modules 配置 及 Antd 组件样式重写

参考文档:

webpack 配置:

// webpack.config.js

module.exports = {

rules: [{

test: /\.less$/,

use: [{

loader: 'style-loader',

}, {

loader: 'css-loader', // translates CSS into CommonJS

options: {

modules: true //开启 CSS Modules

}

}, {

loader: 'less-loader', // compiles Less to CSS

options: {

lessOptions: { // 如果使用less-loader@5,请移除 lessOptions 这一级直接配置选项。

modifyVars: {

'primary-color': '#1DA57A',

'link-color': '#1DA57A',

'border-radius-base': '2px',

},

javascriptEnabled: true,

},

},

}],

// ...other rules

}],

// ...other config

}

重写 Antd 组件样式:

```javascript

// TestPage.ts

import { Select } from 'antd';

import styles from './TestPage.less';

const Option = Select.Option;

const children = [];

for (let i = 10; i < 36; i++) {

children.push({i.toString(36) + i});

}

ReactDOM.render(

mode='multiple'

style={{ width: 300 }}

placeholder='Please select'

className={styles.customSelect}>

{children}

,

mountNode

);

```

```less

// TestPage.less

.customSelect {

:global {

.ant-select-selection {

max-height: 51px;

overflow: auto;

}

}

}

```

开启 CSS Modules 后,以 import styles from '**/*.less' 方式引入,以 className={styles.className} 或 className={styles[className]}的形式设置类名的,类名都会生成 Hash 字符串的形式出现在 dom 的 class 里。

而使用:global(.className) { // Your CSS Code... } 或 :global { .className { // Your CSS Code... } }的语法,声明一个全局规则,该 className 不会被编译成哈希字符串。利用该语法实现 Antd 组件样式重写。

注意:上面例子 :global 声明的全局规则 是限定在 customSelect 类下的,这样只在 customSelect 下起作用,不会污染全局。

标签:styles,less,global,Modules,loader,className,Antd,CSS

来源: /jserhub/p/13520006.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。