当前位置: 首页 > article >正文

React学习———CSS Modules(样式模块化)

CSS Modules

CSS Modules(样式模块化)是一种用于模块化和局部作用域化CSS样式的技术,让CSS只在当前组件内生效,避免全局样式冲突的技术方案

工作原理

  • 文件命名:通常以.module.css.module.less.module.scss等结尾:例如:index.module.less
  • 局部作用域CSS Modules通过为类名生成唯一的哈希值,确保样式不会与其他模块的样式冲突
/* index.module.less */
.root {background: #fff;
}

每个样式类名在编译时会被自动生成一个独一无二的哈希后缀,编译后的类名可能变成root__3k2jf_1只在当前组件内生效

  • 模块化导入:在JavaScriptTypeScript中,可以直接导入CSS Modules文件,并通过对象的形式访问类名
  • 支持组合CSS Modules允许通过composes关键字组合多个类名,实现样式的复用
.base{padding: 10px;
}
.button{composes: base;background-color: blue;
}
  • 与构建工具集成CSS Modules通常与 WebpackVite等构建工具结合使用,通过配置启用模块化功能,例如,在Webpack中可以通过css-loadermodules选项启用CSS Modules

典型用法

// Button.modules.css

.button {background-color: #007bff;color: white;padding: 10px 20px;border: none;border-radius: 5px;
}.button:hover {background-color: #0056b3;
}

// React 组件中

import React from 'react'
import styles from './Button.modules.css'const Button = () => {<button className={styles.button}>点击</button>
}
export default Button 

全局样式

  • :global:是CSS Modules(样式模块化)的一个特殊语法,用于声明全局样式。
.root {...:global {.logo-wrap { ... }}
}

1、.root依然是局部样式,只在当前组件生效
2、:global里的.logo-wrap这个类名会直接变成全局类名,不会被哈希处理,任何地方都能使用

http://www.lryc.cn/news/2378434.html

相关文章:

  • MCP 与 Cloudflare 的结合:网络安全的新高度
  • JavaScript入门【1】概述
  • PyQt5 的使用
  • JavaScript【6】事件
  • STM32F10xx 参考手册
  • 使用Docker部署Nacos
  • 深度学习中ONNX格式的模型文件
  • TIFS2024 | CRFA | 基于关键区域特征攻击提升对抗样本迁移性
  • Redis 发布订阅模式深度解析:原理、应用与实践
  • 环形缓冲区 ring buffer 概述
  • 飞帆控件 post or get it when it has get
  • SQL里where条件的顺序影响索引使用吗?
  • SAP学习笔记 - 开发豆知识02 - com.sap.cds.services.cds.CdsService 废止,那么用什么代替呢?
  • OpenResty 深度解析:构建高性能 Web 服务的终极方案
  • 什么是路由器环回接口?
  • OpenHarmony:开源操作系统重塑产业数字化底座
  • 【MySQL进阶】如何在ubuntu下安装MySQL数据库
  • 【数据结构】_二叉树
  • 给图表组件上点“颜色” —— 我与 CodeBuddy 的合作记录
  • 使用 YOLO 结合 PiscTrace 实现股票走势图像识别
  • OpenCV中的光流估计方法详解
  • OpenCL C++ 常见属性与函数
  • Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
  • 18.自动化生成知识图谱的多维度质量评估方法论
  • 【行为型之命令模式】游戏开发实战——Unity可撤销系统与高级输入管理的架构秘钥
  • 图论模板(部分)
  • LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
  • NBA足球赛事直播源码体育直播M33模板赛事源码
  • 【QT 项目部署指南】使用 Inno Setup 打包 QT 程序为安装包(超详细图文教程)
  • 电子电器架构 --- 整车造车阶段四个重要节点