【CSS扩展】VUE如何使用或修改element plus中自带的CSS全局变量来定义样式

news2024/11/15 10:51:37

目录

一、CSS声明全局变量

二、使用el plus 和 el ui的自带样式

1、element plus—— var.scss位置

2、element ui—— var.scss位置

三、修改el plus 和 el ui中的自定义样式变量(方法一致)


本萌新最近在写网页时使用到了element plus中自带的CSS全局样式定义,本文将从CSS声明全局变量的方法出发,记录如何使用并自定义修改element plus(vue3) 和 element ui(vue 2) 自带的样式。其中也包含了一些对SCSS语言的初探。请各位多多指教~

一、CSS声明全局变量

当我们在写CSS时,会遇到反复定义某些元素的同一属性的同一属性值,代码重复高,并且若是要统一修改该属性值也会显得繁琐。因此,我们CSS中也提供了方法,让我们可以像其他语言类型一样,将值统一储存在某一变量中再调用。

那么这里就要介绍 :root  和  var() 两大“金刚”了。这是最为基础和常用的组合。

  1. :root 以伪类的形式,匹配了文档树中的根元素,通俗理解 :root 就对应 HTML元素 ,但会比HTML元素选择器优先级更高。不难理解HTML作为我们其他元素的“爸爸”,所有CSS全局变量就应该声明在:root里面。
  2. var()函数的含义,就是取得自定义属性中的值,插入到我们写的样式表对应的属性中。

举个栗子吧~

:root{
    --button-color:#fff;
    --div-margin-left:10px;
}

div{
    margin-left:var(--div-margin-left);
}

button{
    background-color:var(--button-color);
}

*注意:自定义属性变量声明时应以 -- (双短横线)开头,作为与其他属性名称的区分,符合CSS规范

二、使用el plus 和 el ui的自带样式

 那么对于element 库中现成的一些变量我们如何使用呢?以颜色为例使用为例~

首先我们需要找到element plus 和 element ui定义全局变量的文件在哪里,以便于使用查阅和自定义修改。

1、element plus—— var.scss位置

\node_modules\element-plus\theme-chalk\src\common 文件夹下

2、element ui—— var.scss位置

\node_modules\element-ui\packages\theme-chalk\src\common  文件夹下

接下来以element plus为例简要看看var.scss怎么定义的:

截取了文件中关于color部分的定义,如下图:

  • !default代表变量默认值
  • map.deep-merge($map1,$map2) ,将两个变量声明的属性和属性值合并在一起,此处即将$type中定义的各个状态(success、warning 等等)对应的颜色值map和原生color的map合并起来
  • 紧接着在color的基础上定义具体的color样式,就有了$color-white  $color-primary等等
  • map.get($map,key)方法用于像对象一样,根据键值获得map中对应的属性值。上图就是用'white'  'black'  这种键值获取到前面$colors中'white'  'black'所对应的颜色值。

了解到其如何定义之后,我们就将已经定义好的用于自己的样式中吧~

我们在main.js中全局引入element-plus(方法不赘述),再在自己的vue界面中引入,引入格式如下:

//随便写的例子,重点关注后面两行
.content {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--el-color-primary-light-9);
    color: var(--el-color-primary);
}

*注意:我们找到对应的变量名例如$color-primary,但是在vue中使用需要加上 --el-  ,即最终为--el-color-primary才会生效

、修改el plus 和 el ui中的自定义样式变量(方法一致)

官网教程如下:

element-plus:主题 | Element Plus (element-plus.org)

element-ui:组件 | Element

总结起来就是三步走:

  • 在assets(静态资源)目录下创建自定义的element-variables.scss文件,并且在main.js引入

  • 按照第二大点中所介绍的路径找到var.scss位置,查看库里定义了哪些变量、哪些可以修改、代码如何等等,在原变量基础上修改内容。
  • 然后,在自定义scss文件中先导入原本的var.scss代码,使用语句为:

 在该行代码上方,写入自己定义、修改的变量内容!!!

 

希望对你有帮助~~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中如何解决跨域问题

跨域 跨域报错是前端开发中非常经典的一个错误,报错如下 Access to XMLHttpRequest at ...... from origin ...... has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. 跨域错误源自于浏览器的同源…

《中秋佳节倍思亲》——2022年这场中秋

中秋佳夜,圆的是月,满的是情,但一人终究扛下离愁 作为一个杭漂者,虽不及北漂般艰难困苦,但也举步维艰啊! 或许,这对我而言,正是一个别样的中秋,也正是一个值得我一生纪念…

多端统一开发解决方案---Taro

Taro 一套代码,多端运行,释放双手的摸鱼神器 文章目录Taro 一套代码,多端运行,释放双手的摸鱼神器1. 简介2. 准备工作2.1 安装及使用2.1.1 开发者工具2.1.2 tarojs2.1安装tarojs工具3. Taro 使用4.限制5.路由跳转汇总6.注意事项7.…

vue3:安装配置sass

目录 前言: 1. 安装sass 2. 新建style目录,存放scss文件 3. main.ts 4. vite.config.ts 5. Test.vue 前言: 对于前端开发人员来说,css预处理的语言已经是家常便饭了,如sass,less等等,那么…

深度学习实战 1 YOLOv5结合BiFPN

目录 1. BiFPN论文简介 2. 在Common.py中添加定义模块(Concat) 3. 将类名加入进去,修改yolo.py 4. 修改train.py 5. 修改配置文件yolov5.yaml 1. BiFPN论文简介 论文《EfficientDet: Scalable and Efficient Object Detection》地址:https://arxiv…

微信小程序云开发的具体使用教程

小程序云开发介绍 云开发官方文档 一个小程序在开发时,除了考虑界面功能逻辑外,还需要后端的数据支持。而为了获得后端的数据支持,开发者需要提前考虑服务器、存储和数据库等需求,并且会花费时间精力在部署应用、依赖上。因此官方…

【JavaScript 逆向】网易易盾滑块逆向分析

声明本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!案例目标验证码:aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc以上均做了脱敏处理,Base64 编码及解码方式:…

MongoDB数据库性能监控详解

目录一、MongoDB启动超慢1、启动日常卡住,根本不用为了截屏而快速操作,MongoDB启动真的超级慢~~2、启动MongoDB配置服务器,间歇性失败。3、查看MongoDB日志,分析“MongoDB启动慢”的原因。4、耗时“一小时”,MongoDB启…

color ui

color ui——组件使用 组件类型 ColorUI Vant webapp ColorUI 下载地址 Git地址 官网地址 简介 ColorUI是一个css库!!!在你引入样式后可以根据class来调用组件,一些含有交互的操作我也有简单写,可以为你开发提供一…

微信小程序项目实例——我有一支画笔(画画)

微信小程序项目实例——我有一支画笔(画画) 文章目录微信小程序项目实例——我有一支画笔(画画)一、项目展示二、首页三、自由绘图四、照片绘图文末项目代码见文字底部,点赞关注有惊喜 一、项目展示 我有一支画笔是一…

JS中let用法

JS中let用法 基本用法 Let命令用来声明变量。它的用法类似于var,但是所声明的变量。只在let命令所在的代码块内有效。 上面代码块中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声…

蓝桥杯刷题冲刺 | 倒计时28天

作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.卡片2.数字三角形3.购物单4.回文日期1.卡片 题目 链接: 卡片 - 蓝桥云课 (lanqiao…

echarts 柱状堆叠图(图例和x轴都是动态的)

问题描述: echarts柱状堆叠图,是很常用的图表,官网的例子很简单 。图例(legend),x轴(xAxis)都是写死的。但是一般实际应用中都是 动态的。下面就举个例子,实现图例和x轴…

uniapp开发微信小程序自定义顶部导航栏

自定义导航栏渐变色,先上效果 使用uniapp开发小程序,在不同界面,要去对页面进行修改顶部导航栏。 比如说要去定义导航栏的背景颜色,常规的去定义导航栏背景颜色 全局定义导航栏 "window": {"navigationBarBackg…

猿创征文|一名大三学生的前端学习之路(真情流露)

✅ 作者简介:一名大三的大学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页 🔥 系列专栏 : node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 🍀 学习格言: ☀️ 打不倒你的会使你更强&#xf…

vue3中使用axios

vue3中使用axios 1.axios在vue3.x中的基础入门使用 在不涉及使用axios进行请求拦截以及响应拦截的场景下,axios的使用可以简化为以下步骤。 step1. 使用npm安装axios npm install axiosstep2. 我们将要使用的axios实例单独编写成一个js文件,文件夹可以建…

猿创征文|【C++游戏引擎Easy2D】学C++还不会绘制一个简单的二维图形?一篇文章教会你

🧛‍♂️iecne个人主页::iecne的学习日志 💡每天关注iecne的作品,一起进步 💪学C必看iecne 本文专栏:【C游戏引擎】. 🐳希望大家多多支持🥰一起进步呀! ✨前…

【Vue组件间通信】 全局事件总线、订阅与发布

目录 一、全局事件总线 作用 安装 组件使用案例 案例分析 组件一(小明) 组件二(小红) 效果展示 二、订阅与发布 安装 组件使用案例 案例分析 组件一(小明) 组件二(小红&#xff…

Python爬虫之Web自动化测试工具SeleniumChrome handless

​ ​ 作者 : SYFStrive 博客首页 : HomePage 🥧 上一篇续文传送门 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:如果觉得文章对你有帮助可以点点关注…

Python流星雨代码

前言 用Python画场流星雨看看,源码见文末公众号哈。 流星类 def __init__(self): self.r ra.randint(50,100) self.t ra.randint(1,3) self.x ra.randint(-2000,1000) #流星的横坐标 self.y ra.randint(0,500) #流星…