Vue入门指北——css中的js变量

简介: Vue入门指北——css中的js变量

前言


最近项目演示,手上没什么活,正好借着闲下来的功夫,看了看vue3的文档,发现vue3对vue3的支持加强了。以前总是想着,如果js中的变量能直接,css中使用,那是多么一件美妙的事情啊,而且优雅。而在这次的vue3里面支持这么做了,你可以随意使用js中的变量,只需一个v-bind()指令就可以实现。下面我给大家简单介绍下,在vue2中css是如何使用js变量的,并对比vue3中的使用,你会发现优雅,太优雅了。


vue2中css内的js变量


假如我们有两个按钮,第一个按钮背景改成粉色,第二个按钮文字改成粉色,你可能会这么写:


<script >
...
data() {
  return {
    color: 'pink',
  }
}
...
</script>
<template>
  <div>
    <button :style="{ background: color }">
      彼时彼刻,恰如此时此刻
    </button>
    <button :style="{ color }">
      彼时彼刻,恰如此时此刻
    </button>
  </div>
</template>
复制代码


但是,这么写的话,动态样式一但多的话,就会显得特别臃肿。这个时候你就可以通过css变量解决这个问题。


<template>
  <div :style="{'--color': color}">
    <button >
      彼时彼刻,恰如此时此刻
    </button>
    <button>
      彼时彼刻,恰如此时此刻
    </button>
  </div>
</template>
<script >
...
data() {
  return {
    color: 'pink',
  }
}
...
</script>
<style scoped>
button:nth-child(1) {
    background: var(--color);
}
button:nth-child(2) {
  color: var(--color)
}
</style>
复制代码


上面两种方法中,都做到了,根据data内的color变量动态渲染css样式,一个是要在标签内编写样式,一个是要在标签内声明css变量,说实话比较繁琐。下面我们来看下,在vue3中是如何实现的。


vue3中css内的js变量


在vue3中可以说是非常方便了:


<script setup>
import { ref } from 'vue';
const color = ref('pink');
</script>
<template>
  <div>
    <button >
      彼时彼刻,恰如此时此刻
    </button>
    <button>
      彼时彼刻,恰如此时此刻
    </button>
  </div>
</template>
<style scoped>
button:nth-child(1) {
    background: v-bind(color);
}
button:nth-child(2) {
  color: v-bind(color);
}
</style>
复制代码


vue3中直接通过v-bind指令就可以与js变量绑定上,既解决了标签内编写样式的臃肿的问题,也省去了声明css变量的麻烦。

相关文章
|
17天前
|
JavaScript 前端开发
JavaScript基础知识-变量的声明提前
关于JavaScript变量声明提前特性的基础知识介绍。
28 0
JavaScript基础知识-变量的声明提前
|
9天前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
235 91
|
9天前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
43 28
|
9天前
|
前端开发 JavaScript
【前端web入门第三天】01 css定义和引入方式 四种标签选择器
本文档详细介绍了CSS的基础知识及其应用。内容涵盖了CSS的定义、CSS在HTML中的引入方式,包括内部样式表、外部样式表及行内样式表的使用场景与方法。此外,还深入解析了不同种类的选择器:标签选择器、类选择器、ID选择器以及通配符选择器的功能与应用场景,并提供了实例帮助理解。最后,通过具体的新属性示例,指导如何使用这些选择器来实现基本的盒子绘制。适合初学者系统学习CSS。
29 15
|
2天前
|
前端开发 JavaScript
uniapp动态修改css样式(通过js来修改css样式)
uniapp动态修改css样式(通过js来修改css样式)
|
8天前
|
前端开发
|
10天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
8天前
|
前端开发
【前端web入门第六天】01 CSS浮动
这是关于CSS布局第六天学习目标的介绍,主要解决多个`&lt;div&gt;`标签在同一行显示的问题,即一个在左边,另一个在右边。文中介绍了标准流、浮动及flex布局的概念,重点推荐使用flex布局。文章详细讲解了浮动的基本使用、布局技巧及清除浮动的方法,包括额外标签法、单伪元素法、双伪元素法和`overflow`隐藏法,并提供了示例代码帮助理解。
|
8天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
29 3
|
8天前
|
JavaScript 前端开发 UED
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js