Vue——认识day06_class与style绑定

news/2024/9/15 4:53:25/ 标签: vue.js, 前端, javascript

在Vue中,可以使用v-bind指令来将CSS样式动态地绑定到HTML元素上。有两种方式可以实现CSS与style的绑定:

  1. 对象语法:可以将一个包含CSS属性和值的对象传递给v-bind,将对象的属性与HTML元素的style属性进行绑定。例如:
<div v-bind:style="{ color: textColor, fontSize: textSize + 'px' }">Hello World</div>

在上面的例子中,textColor和textSize是Vue实例的data属性,可以在Vue实例中定义和修改它们的值。当数据发生变化时,绑定的CSS样式也会相应地更新。

  1. 数组语法:可以将一个数组传递给v-bind,数组中的每个元素都是一个CSS样式对象。这样可以根据某个条件来动态地切换不同的CSS样式。例如:
<div v-bind:style="[baseStyle, activeStyle]">Hello World</div>

在上面的例子中,baseStyle和activeStyle是包含CSS属性和值的样式对象,可以在Vue实例中定义和修改它们的值。根据某个条件,可以动态地切换不同的样式。

通过v-bind指令,Vue可以实现将CSS样式动态地绑定到HTML元素上,从而可以根据数据的变化来改变样式。这种方式使得前端开发更加灵活和方便。


请看下面的代码示例——绑定class样式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>绑定样式</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px solid red;background-color: rgba(255,255,0,0.644);background: linear-gradient(30deg,yellow,pink,orange,yellow);}.sad{border: 4px solid black;background-color: rgba(0, 255, 68, 0.644);}.normal{border: 4px solid blue;background-color: rgba(0, 81, 255, 0.644);}.masoul1{background-color: yellowgreen;}.masoul2{font-size: 44px;text-shadow: 2px 2px 4px rebeccapurple,-2px -2px 4px skyblue;            }.masoul3{border-radius: 10px;}</style><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root"><!-- 绑定class样式——字符串写法,适用于:样式的类名不确定,需要动态指定的 --><!-- 采用:class作为动态的class来绑定 --><div class="basic" :class="mood" @click="changeMood">{{name}}</div><br><hr><br><!-- 绑定class样式——数组写法,适用于:要绑定的样式个数不确定名字也不确定 --><div class="basic" :class="classArr" >{{name}}</div><br><hr><br><!-- 绑定class样式——对象写法,适用于:要绑定的样式个数确定,名字也确定,但要动态决定用不用的 --><div class="basic" :class="classObj">{{name}}</div></div></body><script type="text/javascript">Vue.config.productionTip=falsenew Vue({el:'#root',data:{name:'WenJGo',mood:'normal',classArr:['masoul1','masoul2','masoul3'],classObj:{masoul1:false,masoul2:false}},methods: {changeMood(){// this.mood = 'happy'const arr = ['happy','sad','normal']this.mood = arr[Math.floor(Math.random()*3)]}},});
</script>
</html>


请看下面的代码示例——绑定style样式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>绑定样式</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px solid red;background-color: rgba(255,255,0,0.644);background: linear-gradient(30deg,yellow,pink,orange,yellow);}.sad{border: 4px solid black;background-color: rgba(0, 255, 68, 0.644);}.normal{border: 4px solid blue;background-color: rgba(0, 81, 255, 0.644);}.masoul1{background-color: yellowgreen;}.masoul2{font-size: 44px;text-shadow: 2px 2px 4px rebeccapurple,-2px -2px 4px skyblue;            }.masoul3{border-radius: 10px;}</style><script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body><div id="root"><!-- 绑定class样式——字符串写法,适用于:样式的类名不确定,需要动态指定的 --><!-- 采用:class作为动态的class来绑定 --><div class="basic" :class="mood" @click="changeMood">{{name}}</div><br><hr><br><!-- 绑定class样式——数组写法,适用于:要绑定的样式个数不确定名字也不确定 --><div class="basic" :class="classArr" >{{name}}</div><br><hr><br><!-- 绑定class样式——对象写法,适用于:要绑定的样式个数确定,名字也确定,但要动态决定用不用的 --><div class="basic" :class="classObj">{{name}}</div><br><hr><br><div class="basic" :style="styleObj">{{name}}</div><br><div class="basic" :style="[styleObj,styleObj2]">{{name}}</div></div></body><script type="text/javascript">Vue.config.productionTip=falsenew Vue({el:'#root',data:{name:'WenJGo',mood:'normal',classArr:['masoul1','masoul2','masoul3'],classObj:{masoul1:false,masoul2:false},styleObj:{// 这里的key不能瞎写,这里是将font-size改的符合vue的要求fontSize: '40px',color:'skyblue',// 像这种原先是使用'-'连接的,就修改为驼峰命名// backgroundColor:'yellow'},styleObj2:{backgroundColor:'orange'}},methods: {changeMood(){// this.mood = 'happy'const arr = ['happy','sad','normal']this.mood = arr[Math.floor(Math.random()*3)]}},});
</script>
</html>

总结、

那么绑定样式这一节就完事啦。

在Vue中,绑定样式的技巧和常用习惯主要有以下几种:

  1. 使用class绑定:可以通过v-bind:class指令来动态地绑定class样式。可以将一个对象传递给v-bind:class,对象的属性可以是一个布尔值,根据布尔值来决定是否应用该样式,也可以是一个表达式,根据表达式的值来决定应用哪个样式。

例如:

<div :class="{ active: isActive, 'text-danger': hasError }"></div>

  1. 使用style绑定:可以通过v-bind:style指令来动态地绑定内联样式。可以将一个对象传递给v-bind:style,对象的属性可以是一个字符串,表示样式的属性和值,也可以是一个表达式,根据表达式的值来决定样式的属性和值。

例如:

<div :style="{ fontSize: size + 'px', color: activeColor }"></div>

  1. 使用计算属性:可以使用计算属性来根据一些逻辑计算出样式的属性和值,然后绑定到元素上。

例如:

<div :style="computedStyle"></div>

javascript">computed: {computedStyle: function() {return {fontSize: this.size + 'px',color: this.isActive ? 'red' : 'blue'}}
}

  1. 使用样式组件:可以使用第三方的样式组件库,例如Element UI、Vuetify等。这些库一般都提供了一些预定义的样式组件,可以直接使用,也可以通过配置参数来动态地绑定样式。

总的来说,Vue中绑定样式的技巧和常用习惯主要是使用class和style绑定指令,以及结合计算属性和样式组件来实现动态绑定样式。这样可以很方便地根据不同的条件和逻辑来决定应用哪些样式。


http://www.ppmy.cn/news/1518790.html

相关文章

20.神经网络 - 搭建小实战和 Sequential 的使用

神经网络 - 搭建小实战和 Sequential 的使用 在 PyTorch 中&#xff0c;Sequential 是一个容器&#xff08;container&#xff09;类&#xff0c;用于构建神经网络模型。它允许你按顺序&#xff08;sequential&#xff09;添加不同的网络层&#xff0c;并将它们串联在一起&…

手机FM LNA方案设计

一 概述 关于手机FM的使用&#xff0c;较为传统的则是在打开FM应用前先插入有线耳机才能使用FM应用。然而随着智能手机的进步以及有线耳机日益被无线蓝牙耳机所代替&#xff0c;内置FM LNA方案被应用的越来越多&#xff0c;无需插入有线耳机&#xff0c;复用例如GSM天线也能实…

JavaScript初级——键盘事件

1、 onkeydown —— 按键被按下 —— 如果一直按着某个键不松手&#xff0c;则事件会一直触发 —— 连续触发时&#xff0c;第一次和第二次之间会间隔稍微长一点&#xff0c;其他的会非常的快&#xff0c;这种设计是为了放置误操作的发生 2、 onkeyup —— 按键被松…

Substance 3D Stager for Mac/Win:高效三维场景设计利器

Substance 3D Stager是Adobe推出的一款专为Mac和Windows用户设计的三维场景设计和渲染软件&#xff0c;它以其高效、直观的特点&#xff0c;在数字艺术、游戏开发、影视特效等领域赢得了广泛的认可。 核心功能 直观的操作界面&#xff1a;Substance 3D Stager提供了优秀的视觉…

NTP时间服务器是什么?功能是什么?京准电钟

NTP时间服务器是什么&#xff1f;功能是什么&#xff1f;京准电钟 NTP时间服务器是什么&#xff1f;功能是什么&#xff1f;京准电钟 时间同步技术必定将是整个大数据处理系统的重要支撑和保障。时间同步技术使数据产生与处理系统的所有节点具有全局的、统一的标准时间&#x…

让自家的智能语音助手实现todo任务的添加

我家的树莓派在成为了“智能语音助手”后&#xff0c;经过rasa学习训练&#xff0c;已经可以帮忙查日期/时间&#xff0c;查天气预报&#xff0c;进行一些简单的闲聊。但是&#xff0c;我希望它的功能还可以再强大些&#xff0c;比如说&#xff0c;可以帮我记录todo任务。为了实…

猫头虎分享:Python库 TensorFlow 的简介、安装、用法详解入门教程

猫头虎分享&#xff1a;Python库 TensorFlow 的简介、安装、用法详解入门教程 &#x1f42f; 摘要 今天猫头虎带大家走进 人工智能 的核心领域&#xff0c;深入探讨 TensorFlow 这个强大的 Python库。从 TensorFlow 的基础简介到详细的安装和用法&#xff0c;这篇教程将带你从…

小白学深度学习:知识蒸馏研究综述

为了能够在低资源设备上运行深度学习模型&#xff0c;需要研发高效的小规模网络。知识蒸馏是获取高效小规模网络的一种新兴方法&#xff0c;其主要思想是将学习能力强的复杂教师模型中的“知识”迁移到简单的学生模型中。 知识蒸馏介绍 知识蒸馏是一种教师-学生(Teacher-Stud…

(C++ STL)vector类的简单模拟实现与源码展示

vector类的简单模拟实现 一、前言二、vector 的成员变量三、vector 部分函数实现size、capacityreserveresizeinsert 与注意事项erase构造、析构、赋值拷贝 四、vector 源代码 以下代码环境为 VS2022 C。 一、前言 vector类 本质上就是数据结构中的顺序表。(可参考&#xff1…

Python中的“for循环”:探索其无限潜力

引言 for循环是任何Python程序员工具箱中的必备技能之一。无论是在处理数据时需要遍历数组&#xff0c;还是在编写Web应用时循环处理请求&#xff0c;亦或是进行复杂的算法实现&#xff0c;for循环都能派上大用场。通过掌握for循环的不同用法&#xff0c;我们可以更高效地解决…

谷粒商城实战笔记-269~271-商城业务-订单服务-bug修改

文章目录 一&#xff0c;269-商城业务-订单服务-bug修改二&#xff0c;270-商城业务-订单服务-订单确认页渲染三&#xff0c;271-商城业务-订单服务-订单确认页库存查询四&#xff0c;272-商城业务-订单服务-订单确认页模拟运费效果 一&#xff0c;269-商城业务-订单服务-bug修…

深度学习100问18:什么是负采样

嘿&#xff0c;负采样就像是一个巧妙的“偷懒小妙招”&#xff0c;在自然语言处理的世界里大显身手呢&#xff01; 一、定义及原理 想象一下&#xff0c;你在训练一个语言小魔法师&#xff0c;它的任务是搞清楚词和词之间的关系。就像在 Skip-gram 模型里&#xff0c;要猜出…

JAVA如何使用反射读取注解

在Java中&#xff0c;反射是一种强大的机制&#xff0c;它允许程序在运行时取得任何类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法。使用反射读取注解是Java注解应用的重要部分。以下将详细介绍如何使用Java反射读取注解&#xff0c;并提供相应的代码例子和运…

浅谈【数据结构】图-图的概念

目录 1、图 1.1图的分类 1.2路径 1.3连通图 2、图的存储结构 2.1数组表示法 谢谢帅气美丽且优秀的你看完我的文章还要点赞、收藏加关注 没错&#xff0c;说的就是你&#xff0c;不用再怀疑&#xff01;&#xff01;&#xff01; 希望我的文章内容能对你有帮助&#xff0c…

华为手机数据丢失如何恢复?

在智能手机普及的今天&#xff0c;华为手机凭借其卓越的性能和用户体验赢得了众多用户的青睐。然而&#xff0c;在使用过程中&#xff0c;我们难免会遇到数据丢失或误删除的情况。面对这一困境&#xff0c;许多用户可能会感到束手无策。别担心&#xff0c;本文将为你提供一份全…

分享一个基于Python的广东热门旅游数据可视化分析系统flask毕设(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

安装vue-cli2.0并创建项目

文章目录 1 安装node2 安装vue-cli3 创建基于webpack模板的项目4 项目结构 1 安装node 之前写的博客中介绍了如何安装&#xff1a;NodeJS的安装【windows】。安装完毕后&#xff0c;可以在命令行中输入node -v和npm -v&#xff0c;若出现版本号&#xff0c;则安装成功。 2 安…

Golang 读取文件

GoLang读取文件需要用到os类去打开文件&#xff0c;然后再用其他方式分析文件里的内容。打开文件比较简单&#xff0c;使用os.Open就可以了&#xff0c;记住用defer关闭就行。但是读取文件内容就头疼了&#xff0c;以文本文件为例子&#xff0c;就有各种方式 读取到byte数组 首…

我如何解决 java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter

优质博文&#xff1a;IT-BLOG-CN 问题 我如何解决java.lang.ClassNotFoundException&#xff1a;javax.xml.bind.DatatypeConverter 2024-08-25T02:31:25.46202:00 ERROR 21868 --- [fintonic-oauth] [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet…

亚马逊云(AWS)技术深度解析及代码使用案例

亚马逊云&#xff08;AWS&#xff09;技术深度解析及代码使用案例 引言 亚马逊云&#xff08;Amazon Web Services&#xff0c;简称AWS&#xff09;作为全球云计算技术的首创者和领导者&#xff0c;以其强大的基础设施、丰富的服务种类以及卓越的安全性&#xff0c;持续引领着…