react组件引用less样式失效问题记录

CSS 笔记(十二):预处理器 —— Less 阅读详情
AI摘要

本文解析了在React项目中使用LESS预处理CSS时遇到的样式不生效问题,提供了两种解决方案:一是遵循CSS Modules规则调整引入方式和组件类名使用;二是使用LESS的全局作用域避免类名编译为哈希字符串。

在react项目中使用了less来预处理css,但是在项目中却遇到了引用样式不生效的问题,现记录如下:
页面代码:

import React, { Component } from 'react'
import { connect } from 'react-redux'
import  './index.less';

class PriceProtection extends Component {
  render() {
      return (
          <div className="price_protection_box">
              <div className="price_protection_form_box">
                  <div className="title">
                      标题
                  </div>
              </div>
          </div>
      )
  }
}

const mapStateToProps = (state) => ({
  
})

const mapDispatchToProps = {
  
}

export default connect(mapStateToProps, mapDispatchToProps)(PriceProtection)

样式代码


.price_protection_form_box{
     background: rgba(253,253,253,1);
     border: 1px solid rgba(221,224,227,1);
     border-radius: 2px 6px 6px 6px;
     .title {
         height: 37px;
         background: rgba(246,248,250,1);
         box-shadow: 0px 1px 0px 0px rgba(237,239,242,1);
         position: relative;
     }
 }
.price_protection_box {
     padding-top: 16px;
     margin: 0;
 }

执行以上代码,发现css样式并未生效,F12控制台,发现styles中相关的class都没有:
在这里插入图片描述
以为是自己引用错误,不断调试,后面发现其实样式已引入,但相关的class 名在less预处理中编译时已重命名了:
在这里插入图片描述
而页面中dom的class名并没有变:
在这里插入图片描述

解决方案:

因为我们在项目中使用了css-loader,自带的css modules会把所有类名编译为哈希字符串,所以有下边两种方案解决
一 按照css module 规则
1、修改引入方式

import  './index.less';
// 修改为
 import style from './index.less';

2、组件中使用

class PriceProtection extends Component {
   render() {
       return (
           <div className="price_protection_box">
               <div className="price_protection_form_box"}>
                   <div className="title">
                       标题
                   </div>
               </div>
           </div>            
       )
   }
}
//修改为
class PriceProtection extends Component {
   render() {
       return (
           <div className={style.price_protection_box}>
               <div className={style.price_protection_form_box}>
                   <div className={style.title}>
                       标题
                   </div>
               </div>
           </div>            
       )
   }
}

二 css modules的全局作用域
CSS Modules 允许使用:global(.className)的语法,声明一个全局规则。凡是这样声明的class,都不会被编译成哈希字符串,因此我们可以在less文件中,所有内容外用:global语法包裹住:

:global {
   .price_protection_form_box{
       background: rgba(253,253,253,1);
       border: 1px solid rgba(221,224,227,1);
       border-radius: 2px 6px 6px 6px;
       .title {
           height: 37px;
           background: rgba(246,248,250,1);
           box-shadow: 0px 1px 0px 0px rgba(237,239,242,1);
           position: relative;
       }
   }
.price_protection_box {
       padding-top: 16px;
       margin: 0;
   }
}

页面中就可以直接使用自定义类名了
less中文文档地址:http://lesscss.cn/
CSS Modules 用法教程:http://www.ruanyifeng.com/blog/2016/06/css_modules.html

微信扫码登录 JS SDK v1.0 深度配置:3 种自定义样式方案与 2 个关键参数避坑 本文深入解析微信扫码登录 JS SDK v1.0 的高级配置技巧,提供3种自定义样式方案(CSS外链、Base64内联、动态注入)和2个关键参数(self_redirect与state)的避坑指南,帮助开发者优化PC端网站的微信扫码登录体验,提升用户转化率。 阅读详情

相关推荐

Dify应用UI深度定制指南:从主题配置到源码修改的完整实践

在现代企业级应用开发中,UI定制化是满足品牌一致性和用户体验需求的关键环节。其核心原理在于通过修改前端代码、样式和配置,实现界面外观与交互逻辑的个性化适配。这项技术的价值在于能够将通用开源框架无缝融入企业特定的视觉体系与业务流程,从而提升产品专业度和用户接受度。常见的应用场景包括替换Logo与主题色、调整布局结构、集成企业设计规范以及添加定制功能模块。本文聚焦于LLM应用开发平台Dify,详细解析其UI架构,并提供从低风险的环境变量配置到高风险的源码级修改的完整定制路径,帮助开发者解决部署中遇到的实际界面适

weixin_33937778的博客 372

CSS-Module 使用

CSS-Module 使用 说明 CSS-Module 是一个 css 模块化解决方案,可以通过webpack 在 css-loader 配置 css-module ,开启后默认局部作用域 { test: /\.css$/, use: [ 'style-loader', { loader: 'css-l...

mjzhang1993的博客 3694

从编译到启动:RV1106嵌入式Linux系统构建的效率优化与深度实践

本文深入探讨RV1106嵌入式Linux系统构建的全流程优化策略,重点提升编译速度和驱动加载效率。通过并行编译配置、内核裁剪、驱动加载优化和硬件辅助加速等实践方法,显著缩短系统构建和启动时间,为嵌入式开发提供实用指导。

ttt77的博客 1032

为create-react-app 创建的应用, 添加less

npm run eject 暴露webpack配置 修改webpack.config.js 配置 1、 添加 less 正则 const lessRegex = /\.less$/; const lessModuleRegex = /\.module\.less$/; 2、添加less配置 { test: lessRegex, exclude: sassModuleRegex, us...

我的前端 955

ArcGIS数据处理必备技能:从地理坐标到UTM投影的面转栅格完整流程

本文详细介绍了在ArcGIS中从地理坐标到UTM投影的面转栅格完整流程,包括坐标系转换、像元大小设置及质量控制等关键步骤。通过实战案例和Python脚本示例,帮助用户解决常见问题并优化数据处理效率,特别适合需要精确GIS数据分析的专业人士。

weixin_42628688的博客 180

【阅读文献笔记】FoundationStereo: Zero-Shot Stereo Matching

提出首个零样本泛化立体匹配基础模型设计 STA 模块融合单目先验提出 AHCF 模块增强代价滤波构建 100 万合成数据集 FSD + 自净化流程。

qq_46460379的博客 1257

Less使用

Less是一门CSS预处理语言,现在很多项目都会使用less,今天整理下普通文件和Vue文件如何引入less并使用。 普通文件中使用方式 (1)Npm全局安装(或者直接引入) npm install less –g (2)新建less文件,执行下面的命令自动编译为css $ lessc styles.less > styles.css     每次...

Luminary的技术烟火 427

【Halcon】双目立体视觉引导机械手有序抓取,案例分享

本文介绍了一个基于双目视觉的工件定位与抓取系统。该系统使用两个工业相机组成双目视觉系统,通过标定获取相机参数,采用模板匹配算法识别任意摆放且可能交叠的工件。重点阐述了三维坐标获取方法,特别是通过Z方向高度实现有序抓取的策略。文章详细说明了系统搭建、双目标定、模板创建等关键步骤,并展示了特征点匹配和定位结果。该案例为初学者和开发者提供了双目视觉系统的基本实现参考,展示了机器视觉与机械手协同工作的典型应用场景。

机器视觉从业者 2489

dva 学习实战

import dva from 'dva'; import { Router, Route, Switch } from 'dva/router'; import styles from './index.less'; import Content from './Conten'; import {connect} from 'dva'; // 在定义了 Model 和 Componen...

bingo_ShenWei的博客 2万+

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1630

电机控制的智慧之眼:全面解析FOC状态观测器

摘要:本文深入探讨磁场定向控制(FOC)中的状态观测器技术,重点分析其在无传感器电机控制中的关键作用。文章详细介绍了滑模观测器(SMO)、扩展卡尔曼滤波(EKF)、龙贝格观测器和高频注入法等主流观测器的工作原理、技术特点及适用场景,其中SMO因结构简单、鲁棒性强成为当前主流方案。同时阐述了观测器与锁相环(PLL)结合的工程实践方案,并针对不同应用场景提供了观测器选型建议。文章还探讨了启动问题处理、参数敏感性等工程挑战的解决方案,以及混合观测器、AI应用等未来发展趋势。这些观测器技术使电机系统在无机械传感器情

汽车软件开发 274

一波三折的react + less

本来只是想实现一个less的模块化功能,网上查到很多方法说要react-scripts eject!想着我也没折腾过webpack.config.js也就试试,结果…… 加完以后发现,单纯引用less可以,但是模块化不行?!又找了半天,发现之前的“攻略”里缺了个modules: true,。加完后确实可以模块化引import styles from './index.less';,但是原本的全局配置类又失效了!加上对eject出来一堆完全用不到的东西越看越不顺眼,干脆推倒重来。本来我......

猜测 988

thermal系列(5)-DTSI中配置Thermal

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.youkuaiyun.com/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录thermal系列目录DTSI中配置ThermalDTSI节点类型描述CPU0的配置举例CPU核hot-plugging举例修改热缓解阈值DTSI的node中带有tracks-lowDTSI中关闭某个Thermal Zones thermal系列目录 thermal系列(1)-引言部分 thermal.

fulinux的博客 1231

5大策略助你快速掌握Arco Design Mobile:React移动端UI组件库实战指南

你是否在为React移动端开发寻找一套既美观又高效的UI组件库?Arco Design Mobile正是为解决这一痛点而生。这个基于Arco Design设计体系的React移动端UI组件库,提供了超过50个精心设计的TypeScript组件,帮助开发者快速构建高质量的移动应用界面。今天,我将以技术伙伴的身份,带你深入了解这个强大的工具,分享5个核心策略,让你在15分钟内掌握其精髓并立即投入实战。

gitblog_00723的博客 549

15 媒体存储的封装3

CMediaDisk类真正实现了录像文件的存储、查询和点播。存储录像文件时,需要满足以下的几个基本需求:1、异常断电不能丢失数据。2、录像既支持普通文件的查询方式,也支持时间轴的查询方式。3、修改设备时间时,不能够丢失已有录像和数据。向后修改时间时,如果当前时间已有录像,则不覆盖老数据;直到有未录像的时间段时,才再次写入新数据。4、支持删除媒体文件,也支持按时间段删除。5、支持标记录像文件、抓拍文件,也支持按时间段标记。6、支持自动覆盖最老的文件。7、支持多个设备、多路视频的录像存储。

hope_wisdom的技术博客 1122

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

React常用组件封装及使用

react组件封装

林靖焙的博客 906

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

React+antd后台项目踩坑日记

一、在引入less时 ,嵌套的样式失效? 1,运行npm run eject 将webpack的配置暴露 (如显示无法引入eject,装下eject的依赖,在package.json中暴露 "eject": "react-scripts eject") 2,在node_modules/react-scripts/config/webpack.config.js修改webpack.config.js的webpack配置文件:由于脚手架默认集成了sass的配置。所以直接模改less就ok了。 3、完整的web

fsjdgfcuvb的博客 5320

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Vue 项目渐进式迁移 React:组件库接入与跨框架协同技术方案

本文档提出在Vue项目中渐进式接入React组件库的技术方案,通过"Vue主框架+React嵌入容器"架构实现双框架共存。核心方案包括:采用组件库prefixCls配置实现样式隔离;复用Vue Router通过容器组件挂载React页面;封装跨框架Store API实现数据互通;复用现有国际化方案;使用SWC编译保障React开发体验。该方案支持按页面逐步迁移,避免一次性重构风险,为Vue项目向React技术栈过渡提供标准化参考。

weixin_45242865的博客 1559

2021-05-07 记录一次奇葩的问题:background-position属性值无效

记录一次奇葩的问题:background-position属性值无效记录一次奇葩的问题:background-position属性值无效原来的写法新的写法 记录一次奇葩的问题:background-position属性值无效 先描述一下当时的情况,我使用的React框架开发的前端程序,样式采用了less来写。然后,在设置一个背景图片的位置时,奇葩的情况出现了!!! background-position属性值无效,百度各种无果后,只能自己摸索。 原来的写法 @IconPath: '../../images'

qq_38950073的博客 948

关于Ant-Design的最新动态换肤踩坑记录

开头 最近有需求要换肤,于是研究了下这个方向,故事就这么开始了换肤的技术调研 1.Less在线编译 - 前端引入Less2.多套Css皮肤实现3.覆盖样式实现4.Css变量实现5....若...

petertanjinjie的博客 942

从Ant Design 4到5:Refine项目兼容性问题完全指南

你是否正面临Refine项目升级到Ant Design 5后组件样式错乱、构建失败或功能异常?本文将系统梳理版本迁移的核心痛点,提供自动化迁移工具使用指南,并通过真实案例解析常见兼容性问题的解决方案,帮助你2小时内完成平滑过渡。 ## 版本兼容性概览 Refine作为构建管理面板的React框架,与Ant Design(简称AntD)保持着深度集成。根据[README.md](https://...

gitblog_01029的博客 416

ArcoWebpackPlugin配置实战---踩坑记录

splitChunks 的 cacheGroups 是一把双刃剑:用好了可以精确控制分包策略实现长期缓存,用错了会静默地破坏 React.lazy 的代码分割。不要用固定 name 的 cacheGroup 匹配 src 目录。会把所有页面合并成一个 chunk,彻底抵消路由级懒加载。chunks 参数要根据依赖的使用场景来定。首屏必需的(react、arco)用'all',只在特定页面用到的(xlsx、turf、charts)用'async'。priority 决定模块归属。

m0_63587743的博客 288

前端复杂问题解决:调试技巧与思维模式

前端开发中,复杂问题往往涉及浏览器兼容性、性能瓶颈、框架冲突等核心挑战。理解浏览器渲染机制和事件循环原理是解决这些问题的技术基础。通过系统化的调试工具链(如Chrome DevTools性能分析、内存快照对比)和思维模式转变(从表象到根本原因分析),开发者可以显著提升问题解决效率。特别是在处理内存泄漏和CSS样式冲突等典型场景时,结合第三方库特性和浏览器工作原理进行深度排查尤为重要。本文基于实战经验,分享如何建立系统化的问题解决流程,包括最小化复现、环境隔离等实用技巧,帮助开发者应对那些'百度无解'的前端疑

weixin_30635053的博客 341

别人的面试题(持续更新)

访问对象属性时,现在对象自身找,找不到就顺着[[prototype]]隐式原型往上找,直到null,这种委托机制,实现了多个对象共享原型上的方法,就是所谓的原型继承。规范强制使用微任务调度回调,提供统一接口管理异步成功,失败,解决传统回调地狱,异步结果无法复用,错误难以统一捕捉的问题。sass功能更强,支持条件,循环,自定义函数,占位选择器,less高级特性较弱。less基于js,变量使用@,sass主流dart-sass,变量$共同点:支持变量,选择器嵌套,mixin混入,import导入,运算。

2302_80473627的博客 223
上一篇: react图片裁剪工具 - react-image-crop
下一篇: 用node起一个服务,来应付老旧前端项目本地不能运行的问题
caperxi
博客等级 码龄7年 1292粉丝 61原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caperxi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值