Vite创建React项目实现全局Less变量的引入使用(包括更改全局颜色)

1.首先确定你的项目是不是Vite创建的

2.在vite.config.ts中配置如下内容即可

import { defineConfig } from 'vite'
import path from "path"
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react() ],
  css: {
    preprocessorOptions: {
      less: {
         //引入了全局的 SCSS 文件 global.scss
          additionalData: `@import "./src/assets/css/variables.less";`,
      }
    }
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, './src')
    }
  },
  server: {
    host: '0.0.0.0'
  },
  
})

3. variables.less即为引入的全局样式处

@fontsColor: #1e80ff;

4.scss亦是同理 


5.如果想要实现颜色的变化更改

  1. 定义 CSS 变量
    你可以在 Less 文件中定义一个与 CSS 变量对应的 Less 变量,但重要的是要理解这个 Less 变量仅在编译时有用。然后,你可以在编译后的 CSS 中直接使用 CSS 变量

    // styles/variables.less
    @primary-color: var(--primary-color, #1e80ff); // 这里我们其实是在为 CSS 变量提供一个回退值

    但是,由于 Less 不直接支持 CSS 变量的定义(它支持使用 CSS 变量,但不支持在 Less 文件中定义它们作为变量的一部分),你需要在 CSS 或直接在 HTML 的 <style> 标签中定义 CSS 变量。为了简化,我们可以在一个全局的 CSS 文件中定义它们:

    /* global.css */
    :root {
    --primary-color: #1e80ff;
    }

    然后在你的 Less 文件中引用这个全局 CSS 文件(虽然这里不是直接引用 Less 变量,但效果相似):

    // 在你的 Less 文件中,你可以简单地使用 CSS 变量,而不需要定义 Less 变量来对应它
    .my-class {
    color: var(--primary-color);
    }

    注意:在实际项目中,你可能不需要在 Less 文件中做这一步,因为你可以直接在 CSS 中使用 CSS 变量,并通过 JavaScript 来改变它们。

  2. 在 React 组件中使用
    现在,你可以在你的 React 组件中通过 JavaScript 来改变 CSS 变量的值。

    import React, { useState } from 'react';
    import './global.css'; // 确保导入了定义 CSS 变量的 CSS 文件
    const ColorSwitcher = () => {
    const [color, setColor] = useState('#1e80ff'); // 初始颜色与 CSS 变量中的值相同
    const handleColorChange = () => {
    // 这里你可以设置为任何你想要的颜色值
    setColor('#ff0000'); // 例如,切换为红色
    // 更新 CSS 变量
    document.documentElement.style.setProperty('--primary-color', color);
    };
    return (
    <div>
    <p className="my-class">This text will change color.</p>
    <button onClick={handleColorChange}>Change Color</button>
    </div>
    );
    };
    export default ColorSwitcher;

    注意,我们在 handleColorChange 函数中直接修改了 :root 元素的 --primary-color CSS 变量。这是因为 CSS 变量是继承的,所以改变 :root 的变量值会影响所有使用这个变量的元素。

  3. 确保样式被正确应用
    确保你的全局 CSS 文件(包含 CSS 变量定义)被正确导入到你的项目中,并且你的 React 组件能够访问到这些变量。

通过这种方式,你可以在 React 项目中结合使用 Less 和 CSS 变量,同时实现动态样式更改。不过,请注意,这种方法实际上并没有直接使用 Less 变量来动态改变样式;相反,它利用了 CSS 变量的动态性质。如果你想要完全基于 Less 变量来工作,并且仍然需要动态改变样式,你可能需要考虑使用其他方法,如 CSS-in-JS 库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/901147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)

文章目录 1、任务目标2、网页分析3、代码编写 1、任务目标 目标网站&#xff1a;B站视频&#xff08;https://www.bilibili.com/video/BV1se41117WP/?vd_sourcee8e376ccbc5aa4cfd88e6a7917adfd1a&#xff09;&#xff0c;用于本文测验 要求&#xff1a;抓取该网址下的视频&…

大数据-190 Elasticsearch - ELK 日志分析实战 - 配置启动 Filebeat Logstash

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

uniapp:上拉加载更多、下拉刷新、页面滚动到指定位置

提醒 本文实例是使用uniapp进行开发演示的。 一、需求场景 在开发商品&#xff08;SKU&#xff09;列表页面时&#xff0c;通常有三个需求&#xff1a; 页面下拉刷新&#xff0c;第一页展示最新数据&#xff1b;上拉加载更多数据&#xff1b;列表页面可以滚动到指定位置&#x…

如何为工业未来赋能?通过CodeMeter为工业企业开辟工业自动化安全与灵活性之道

在现代工业自动化领域&#xff0c;数字化转型已经成为不可逆的趋势。然而&#xff0c;要将新一代的自动化软件与传统设备集成&#xff0c;企业面临的不仅是技术上的复杂性&#xff0c;更是如何有效保护宝贵的知识产权并实现灵活管理的严峻挑战。菲尼克斯电气&#xff08;Phoeni…

HTML5教程(一)- 网页与开发工具

1. 什么是网页 网页 基于浏览器阅读的应用程序&#xff0c;是数据&#xff08;文本、图像、视频、声音、链接等&#xff09;展示的载体常见的是以 .html 或 .htm 结尾的文件 网站 使用 HTML 等制作的用于展示特定内容相关的网页集合。 2. 网页的组成 浏览器 代替用户向服务…

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…

C语言 动态数据结构的C语言实现单向链表-2

建立一个单向链表 在单向链表中查找节点---查找尾节点 在单向链表中查找节点 --- 查找第 n 个节点 向单向链表中插入一个节点 向单向链表的尾部插入一个节点 向单向链表中某节点后插入一个节点 向单向链表中插入一个节点 删除单向链表中的某一节点 链表 vs 数组 动态数据结构

C++核心编程和桌面应用开发 第十五天(deque/stack/queue)

目录 1.deque容器 1.1构造和赋值&#xff08;同vector类似&#xff09; 1.2大小操作 1.3插入和删除 1.5数据存取 1.6排序&#xff08;升序&#xff09; 2.stack容器 3.queue容器 1.deque容器 1.1构造和赋值&#xff08;同vector类似&#xff09; deque内部工作原理&a…

湖北省自闭症全托管:为您推荐湖北省的自闭症服务机构

原文指路&#xff1a;http://www.zibizhengwang.com/page35.html 自闭症&#xff0c;这一复杂而神秘的神经发育障碍&#xff0c;长久以来困扰着无数家庭。它不仅影响着儿童的社交互动、沟通能力&#xff0c;还常常伴随着行为问题和感官过敏。面对这一挑战&#xff0c;湖北省内…

HTML静态网页作业成品(HTML+CSS)——动漫犬夜叉主题网页设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码1、HTML代码2、CSS部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用DIVCSS布局&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二…

使用Python来下一场深夜雪

效果图&#xff1a;&#xff08;真实情况是动态的&#xff09; 完整代码&#xff1a; import turtle import random# 初始化画布 turtle.bgcolor("#001f3f") # 偏深蓝色的背景 turtle.title("下雪的画面") turtle.speed(0) turtle.hideturtle() turtle.t…

ffmpeg视频滤镜:定向模糊-dblur

滤镜简述 dblur 官网链接 > https://ffmpeg.org/ffmpeg-filters.html#dblur 有一个模糊滤镜&#xff0c;我试了一下&#xff0c;没有感觉到它的特殊之处, 这里简单介绍一下。 滤镜使用 滤镜的参数 angle <float> ..FV.....T. set angle (from 0 t…

基于neo4j的旅游知识图谱维护与问答系统

你还在为毕业设计发愁吗&#xff1f;试试这个基于Neo4j的旅游知识图谱维护与问答系统吧&#xff01;这套系统不仅功能强大&#xff0c;而且几乎涵盖了你需要的一切&#xff0c;完美助力你的毕业项目&#xff01; 系统介绍 该系统是专门针对旅游景点信息的知识图谱工具&#x…

ClickHouse在百度MEG数据中台的落地和优化

导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题&#xff0c;导致开发效率低下、学习成本高&#xff0c;业务需求响应迟缓。为了解决这些问题&#xff0c;百度MEG内部开发了图灵3.0生态系统&#xff0c;包括Turing Data Engine(TDE)计算引擎、Turing Dat…

常用排序算法总结

内容目录 1. 选择类排序 1.1 直接选择排序1.2 堆排序 2. 交换类排序 2.1 冒泡排序2.2 快速排序 3. 插入类排序 3.1 直接插入排序3.2 希尔排序 4. 其它排序 4.1 归并排序4.2 基数排序/桶排序 排序 1. 选择类排序 选择类排序的特征是每次从待排序集合中选择出一个最大值或者最…

大数据治理平台建设规划方案(71页WORD)

随着信息化时代的到来&#xff0c;大数据已成为企业管理和决策的重要基础。然而&#xff0c;大数据的快速增长和复杂性给数据的管理和治理带来了巨大挑战。为了有效应对这些挑战&#xff0c;构建一个高效、稳定的大数据治理平台显得尤为重要。 文档介绍&#xff1a; 该平台旨在…

零基础Java第十期:类和对象(一)

目录 一、拜访对象村 1.1. 什么是面向对象 1.2. 面向对象与面向过程 二、类定义和使用 2.1. 类的定义格式 2.2. 类的定义练习 三、类的实例化 3.1. 什么是实例化 3.2. 类和对象的说明 四、this引用 4.1. 什么是this引用 4.2. this引用的特性 一、拜访对象村 在…

基于SSM考研助手系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教学秘书管理&#xff0c;考研资讯管理&#xff0c;考研名师管理&#xff0c;考研信息管理&#xff0c;系统管理 教学秘书账号功能包括&#xff1a;系统首页&#xff0c;个人中心…

让你的 IDEA 使用更流畅 | IDEA内存修改

随着idea使用越来越频繁&#xff0c;笔者最近发现使用过程中有时候会出现卡顿现象&#xff0c;例如&#xff0c;启动软件变慢&#xff0c;打开项目的速度变慢等&#xff1a; 因此如果各位朋友觉得最近也遇到了同样的困惑&#xff0c;不妨跟着笔者一起来设置IDEA的内存大小吧~ …

基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在实现基于ALBERT模型的命名实体识别&#xff08;NER&#xff09;任务。ALBERT&#xff08;A Lite BERT&#xff09;是谷歌提出的轻量级BERT模型&#xff0c;具有…