iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue如何使用CSS自定义变量
  • 482
分享到

Vue如何使用CSS自定义变量

2024-04-02 19:04:59 482人浏览 独家记忆
摘要

目录在 CSS 自定义变量的功能以及出来许久了,但实际开发中大家使用并不多。归其原因是因为 less、sass 等预处理器已经拥有定义变量的功能,以及Vue、React很方便设置 s

CSS 自定义变量的功能以及出来许久了,但实际开发中大家使用并不多。归其原因是因为 less、sass 等预处理器已经拥有定义变量的功能,以及VueReact很方便设置 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自定义变量的资料请关注编程网其它相关文章!

--结束END--

本文标题: Vue如何使用CSS自定义变量

本文链接: https://www.lsjlt.com/news/125433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue如何使用CSS自定义变量
    目录在 css 自定义变量的功能以及出来许久了,但实际开发中大家使用并不多。归其原因是因为 less、sass 等预处理器已经拥有定义变量的功能,以及Vue、react很方便设置 s...
    99+
    2024-04-02
  • 如何在css中如何定义使用变量
    今天就跟大家聊聊有关如何在css中如何定义使用变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*)  ;...
    99+
    2023-06-15
  • vue中如何使用定义好的变量设置css样式
    小编给大家分享一下vue中如何使用定义好的变量设置css样式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在做项目的时候,通常会遇到需要在 HTML 标签上绑定变量来设置样式,对于这种需求,共有两种情况。实现第一种情况...
    99+
    2023-06-29
  • vue中如何定义变量
    在vue中定义变量的方法有:1.使用var定义;2.使用const定义;3.使用let定义;具体方法如下:使用var定义变量var a = 1;console.log('函数外var定义a:' + a);function change(){...
    99+
    2024-04-02
  • VUE如何定义全局变量
    这篇文章主要介绍了VUE如何定义全局变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、全局变量专用模块就是以一个特定模块来组织管理这些全...
    99+
    2024-04-02
  • CSS中怎么定义变量并使用
    小编给大家分享一下CSS中怎么定义变量并使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CSS 中原生的变量定义语法是:--,变量使用语法是:var(--) ;...
    99+
    2023-06-27
  • vue如何使用自定义指令
    这篇文章将为大家详细讲解有关vue如何使用自定义指令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用自定义指令的逻辑与使用事件修饰符的逻辑...
    99+
    2024-04-02
  • vue中使用定义好的变量设置css样式详解
    目录前言实现第一种情况第二种情况 语法方法一方法二总结前言 在做项目的时候,通常会遇到需要在 HTML 标签上绑定变量来设置样式,对于这种需求,共有两种情况。 实现 第一种...
    99+
    2024-04-02
  • Vue中如何使用自定义指令
    今天就跟大家聊聊有关Vue中如何使用自定义指令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.自定义指令的语法Vue自定义指令语法如下:Vue.d...
    99+
    2024-04-02
  • golang如何定义变量
    golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”;4、对于数组、切片、映射和函数类型的变量“var numbers...
    99+
    2023-12-22
    Golang
  • vb全局变量如何定义和使用
    在VB中,可以使用Public关键字来定义全局变量,以便在整个应用程序中都可以访问和使用。以下是全局变量的定义和使用的示例:1. 在...
    99+
    2023-10-20
    vb
  • CSS如何使用下载自定义字体
    这篇文章主要介绍了CSS如何使用下载自定义字体,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 假设要设置本身想要的字体,法子是有的,须要下...
    99+
    2024-04-02
  • mysql变量怎么自定义
    这篇文章主要介绍“mysql变量怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql变量怎么自定义”文章能帮助大家解决问题。系统变量简介1、系统变量 ...
    99+
    2022-11-30
    mysql
  • vue中的自定义指令如何使用
    这篇文章主要介绍“vue中的自定义指令如何使用”,在日常操作中,相信很多人在vue中的自定义指令如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的自定义指令如何使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • java如何定义float变量
    在Java中,可以使用float关键字来定义一个float类型的变量。具体语法如下:```javafloat variableNam...
    99+
    2023-09-12
    java
  • python如何定义int变量
    在Python中,可以使用以下方式来定义整数(int)变量:1. 直接赋值:```pythonx = 10```2. 使用int()...
    99+
    2023-09-04
    python
  • MySQL中怎么自定义变量
    MySQL中怎么自定义变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.自定义变量---自我介绍大家好,我是mysql自定...
    99+
    2024-04-02
  • 如何在Vue CLI中使用自定义组件
    在Vue.js框架下,使用自定义组件能够大大提高项目的开发效率。Vue CLI是一个基于Vue.js快速搭建项目的脚手架工具,Vue CLI的快速开发流程便于开发人员更快速地搭建项目。本篇文章将介绍如何在Vue CLI中使用自定义组件。一、...
    99+
    2023-05-14
  • css如何自定义字体
    这篇文章主要介绍css如何自定义字体,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=""。2.内嵌样式,就是将...
    99+
    2023-06-14
  • MySQL自定义变量自增——@rownum:= @rownum+1
    初识Mysql自定义变量 有时候一张表虽然设置了ID自增,但是经过一系列业务增删骚操作后自增的ID也不是那么有序,MySQL中又没有获取行号的函数,因此我们需要通过一些自定义语句来进行获取。 通常的做法是:通过定义自定义变量@ro...
    99+
    2023-08-16
    mysql 数据库 database
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作