我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue如何使用CSS自定义变量

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue如何使用CSS自定义变量

在 css 自定义变量的功能以及出来许久了,但实际开发中大家使用并不多。归其原因是因为 less、sass 等预处理器已经拥有定义变量的功能,以及Vue、react很方便设置 style 样式,大家可能觉得使用 css 定义变量不方便且没必要。实则不然举个最直观的栗子:“如何使用 vue 设置伪类伪元素的样式”。这是个世纪难题,大部分人可能会通过修改类名的方式解决,可如果要修改的样式多,或者我想通过不同的数据渲染不同的样式,那该怎么办呢?今天我就来直接解决这个问题。 先来了解什么是 css 自定义变量。 简单使用:


<style>
div {
    --bg-color : pink; //定义变量
    color : var( --bg-color ) // 通过var函数使用变量
}
</style>
<div>hello</div>

你将会得到一个粉色的hello。在父级定义的变量也可以让子级及其伪类伪元素使用。


<style>
div {
    --bg-color : pink; //定义变量
    color : var( --bg-color ); // 通过var函数使用变量
}
div:hover {
    background-color : var( --bg-color );
}
div span {
    background-color : var( --bg-color );
}
</style>
<div>hello <span>world</span> </div>

var 函数还可以设置一个默认值,当查找不到自定义变量时,你还可以设置一个默认值。


<style>
div {
    color : var( --bg-color, pink ); // 第二个参数为默认值
    background-color : var( --bg-color ,--color,--a,red );// 你甚至可以设置多个变量,它从左到右依次查找
}
</style>
<div>hello</div>

到此为止 css 自定义变量就介绍的完了。接下来看看它在 vue 中的使用。你可以在标签的 style 属性里面设置其变量的值。


<template>
	<div class="box" @click="changeColor" :style="{'--a' : a}">hello</div>
</template>
export default {
  data(){
    return {
      a : 'blue',
    }
  },
  methods: {
    changeColor(){
      this.a = this.a === 'blue' ? "red" : "blue"
    }
  }
}
</script>
<style>
  .box {
      color : var(--a);
  }
  .box:hover {
    background-color : var(--a);
  }
</style>

点击 div 它的字体颜色以及其 hover 时的背景颜色将会直接改变。在此时你会发现通过自定义 css 变量,可以很方便的修改其样式以及可以直接修改其伪类的属性。由于子元素可以共享父元素的自定义变量,你可以直接在子组件中直接使用父自己的变量。


// 父组件
<template>
	<div class="box"  :style="{'--a' : a}">hello <Child></Child></div>
</template>
export default {
  components : {
      Child
  },
  data(){
    return {
      a : 'blue',
    }
  }
}
</script>

// 子组件 Child
<template>
  <span>world</span>
</template>

<style lang="less">
  span {
      color : var(--color);
  }
</style>

试验一下效果非常的 amazing ,这样我们可以在父组件修改状态来改变子组件的样式,绕过了子父组件传值。注意:子组件必须要在变量能作用到的范围类挂载才行。

上述栗子中可以看出,子定义变量的方便之处。为来跟为方便的使用你可以通过 vue 自定义指令的方式设置变量。


   // vue3 自定义指令。
      function change(el,binding){
        for(let [key,value] of Object.entries(binding.value)){
            el.style.setProperty('--'+key, value);
        }
    }
  app.directive(css, {
        mounted(el,binding){
            change(el,binding)
        }
        updated(el, binding) {
            change(el,binding)
        }
       
    })

注意修改css变量使用 el.style['--color'] = 'red' 是无效的,必须得用 style.setProperty api设置。注册好指令后我们可以。


<template>
	<div v-css="{a,b}" class="box" @click="changeColor"></div>
</template>
export default {
  data(){
    return {
      a : 'blue',
      b : 'pink'
    }
  },
  methods: {
    changeColor(){
      this.a = this.a === 'blue' ? "red" : "blue"
      this.b = this.b === 'pink' ? "yellow" : "pink"
    }
  }
}
</script>
<style>
  .box {
    width : 100px;
    height : 100px;
    background-color : var(--a);
  }
  .box:hover {
    background-color : var(--b);
  }
</style>

极大的方便了vue 对于 style 样式的操作。

我在此基础上进行了一些优化及扩展,开源了一个工具,已发布在 npm 上。地址www.npmjs.com/package/vue… 。欢迎大家多多下载体验,喜欢也可以 star 哦。

以上就是Vue如何使用CSS自定义变量的详细内容,更多关于Vue 使用CSS自定义变量的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue如何使用CSS自定义变量

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在css中如何定义使用变量

今天就跟大家聊聊有关如何在css中如何定义使用变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*) ; 其中*
2023-06-15

vue中如何使用定义好的变量设置css样式

小编给大家分享一下vue中如何使用定义好的变量设置css样式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在做项目的时候,通常会遇到需要在 HTML 标签上绑定变量来设置样式,对于这种需求,共有两种情况。实现第一种情况
2023-06-29

CSS中怎么定义变量并使用

小编给大家分享一下CSS中怎么定义变量并使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CSS 中原生的变量定义语法是:--,变量使用语法是:var(--) ;
2023-06-27

vb全局变量如何定义和使用

在VB中,可以使用Public关键字来定义全局变量,以便在整个应用程序中都可以访问和使用。以下是全局变量的定义和使用的示例:1. 在模块级别声明全局变量:Module Module1Public globalVariable As Inte
2023-10-20

golang如何定义变量

golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”;4、对于数组、切片、映射和函数类型的变量“var numbers
golang如何定义变量
2023-12-22

vue中的自定义指令如何使用

这篇文章主要介绍“vue中的自定义指令如何使用”,在日常操作中,相信很多人在vue中的自定义指令如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的自定义指令如何使用”的疑惑有所帮助!接下来,请跟
2023-06-29

MySQL 自定义变量@ 常用案例

以下文章来源于SQL开发与优化,作者郑松华大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子很久没有写文章,最近碰到了一个非常有意思的Oracle SQL 案例,这个案例,我用了一些窗口函数来解决的,后来想想,能否跟MySQL有所关联,就用一个SQL,总结
MySQL 自定义变量@ 常用案例
2019-03-05

java如何定义float变量

在Java中,可以使用float关键字来定义一个float类型的变量。具体语法如下:```javafloat variableName;```其中,`variableName`是你给这个变量起的名字,它可以是任何合法的标识符。定义完变量后,
2023-09-12

python如何定义int变量

在Python中,可以使用以下方式来定义整数(int)变量:1. 直接赋值:```pythonx = 10```2. 使用int()函数进行转换:```pythonx = int(10)```3. 使用其他整数变量进行赋值:```pytho
2023-09-04

如何在Vue CLI中使用自定义组件

在Vue.js框架下,使用自定义组件能够大大提高项目的开发效率。Vue CLI是一个基于Vue.js快速搭建项目的脚手架工具,Vue CLI的快速开发流程便于开发人员更快速地搭建项目。本篇文章将介绍如何在Vue CLI中使用自定义组件。一、创建Vue项目首先,在终端中输入以下命令以创建Vue项目:```vue create <project-name>```其中,`<proje
2023-05-14

Oracle中如何定义常量变量

在Oracle中,可以使用以下语法来定义常量变量:DECLAREconstant_name CONSTANT data_type := value;BEGIN-- code hereEND;在上面的语法中,constant_name
Oracle中如何定义常量变量
2024-08-24

css如何自定义字体

这篇文章主要介绍css如何自定义字体,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=""。2.内嵌样式,就是将CSS代码写在之间,
2023-06-14

MySQL 使用自定义变量进行查询优化

目录优化排序查询避免重复获取刚刚修改的数据行懒加载的联合查询优化排序查询自定义变量的一个重要特性是你可以同时将该变量的数学计算后的结果再赋值给该变量,类似于我们的 i = i + 1这种方式。下面是一个用于计算数据表行号的例子:SET @r
2022-05-21

编程热搜

目录