CSS-Module 使用

本文深入讲解CSS-Module的使用方法,包括如何通过webpack配置开启css-module,实现css局部作用域,以及如何声明全局规则,使用驼峰式命名,组合其他类,以及在js中引用。同时介绍了局部作用域与全局作用域的嵌套使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSS-Module 使用

说明

CSS-Module 是一个 css 模块化解决方案,可以通过webpack 在 css-loader 配置 css-module ,开启后默认局部作用域

{ 
    test: /\.css$/,
    use: [
        'style-loader',
        {
            loader: 'css-loader',
            options: {
                modules: true, // 开启 css-module
                localIdentName: '[hash:base64:6]'
            }
        },
        'postcss-loader'
    ] 
}

1. :global(.class|#id) 声明全局规则

    :global(#box) {

    }
    :global{
        #box{

        }
    }

2. :local(.class) 在局部作用域中声明选择器,建议使用驼峰式命名,这样可以更容易在 js 中引用

3. composes: className 用来组合其他类

:local(.className) {
    // ...
}
:local(.cn) {
    composes: className; // 组合局部作用域的规则
    // composes: className from 'xxx.css'; // 组合其他文件中的规则
}

4. js 中引用

在样式中嵌套的类,在 js 中使用时还是直接通过 styles.className 找到

import styles from 'index.less';

export default const Index = () => (
    <div className={styles.appContainer}>
        <div className={styles.appBody}></div>
    </div>
);

5. 局部作用域的类与全局作用域的嵌套

// 在局部作用域中嵌套全局作用域

.app{
    :global {
        .global-style{
            // ...
        }
    }
}

// 全局作用域中套局部作用域

:global {
    .global-style{
        :local .local-style {
            // ...
        };
    }
};

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值