当前位置: 首页 > news >正文

Vue基础知识-Vue中:class与:style动态绑定样式

完整源码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../js/vue.js"></script>
</head>
<body><div id="root"> <!--class字符串写法--><div class="basic" :class="str">你好</div><br><br><!--class数组写法--><div class="basic" :class="classArr">你好</div><br><br><input type="button" @click="bigFont"  value='字体变大'></button><br><br><!--class对象写法--><div class="basic" :class="classObj">你好</div><br><br><input type="button" @click="backgroundColor"  value='背景变色'></button><br><br><!--style对象写法,数组写法比较少这里不介绍--><div class="basic" :style="styleObj">你好</div><br><br><input type="button" @click="changeFontSize"  :value='isSmall?"字体变大":"字体变小"' /></div>
</body><script>const vm = new Vue({el:'#root',data() {return {str:'smallFont',classArr:[],classObj:{backgroundColor:false //false表示不使用该class},styleObj:{fontSize : ''},isSmall:false}},methods: {bigFont(){this.classArr.push('bigFont')},backgroundColor(e){this.classObj.backgroundColor = !this.classObj.backgroundColorthis.classObj.backgroundColor?e.target.value = '恢复原色':e.target.value = '背景变色'},changeFontSize(){this.isSmall = !this.isSmallif(this.isSmall) this.styleObj.fontSize = '15px'else this.styleObj.fontSize = '30px'}}})</script><style>.basic{font-size: 30px;color: red;}.smallFont{font-size: 15px;}.bigFont{font-size: 50px;}.backgroundColor{background-color: aqua;}</style>
</html>

代码解析

1. 动态绑定 class 的三种方式

(1)字符串写法
<div class="basic" :class="str">你好</div>
  • 特点:通过字符串指定类名,适用于类名不确定的场景
  • 原理:str的值为smallFont,初始时会在basic类基础上添加smallFont
(2)数组写法
<div class="basic" :class="classArr">你好</div>
<input type="button" @click="bigFont" value='字体变大'>
  • 特点:通过数组存储多个类名,适用于需要动态添加类名的场景
  • 原理:点击按钮时,调用bigFont方法向classArr数组中添加bigFont
(3)对象写法
<div class="basic" :class="classObj">你好</div>
<input type="button" @click="backgroundColor" value='背景变色'>
  • 特点:通过对象的键值对(键为类名,值为布尔值)控制类是否生效,适用于样式切换场景
  • 原理:点击按钮时切换classObj.backgroundColor的值(true/false),控制backgroundColor类是否生效

2. 动态绑定 style 的方式

<div class="basic" :style="styleObj">你好</div>
<input type="button" @click="changeFontSize" :value='isSmall?"字体变大":"字体变小"' />
  • 特点:通过对象直接绑定行内样式,适用于需要动态设置具体样式值的场景
  • 原理:点击按钮时切换isSmall的值,根据其值设置styleObj.fontSize的具体大小

3. 小结

  • :class:style是 Vue 的指令,用于动态绑定样式
  • 静态类(如basic)和动态类可以同时存在
  • 样式切换的核心是通过修改数据(data 中的属性)来驱动视图变化
  • class 绑定适用于预定义的 CSS 类,style 绑定适用于需要动态计算的样式值
http://www.dtcms.com/a/362349.html

相关文章:

  • DiffusionGPT-LLM驱动的文本生成图像系统
  • OpenStack网络类型解析
  • Markdown 语法全面指南
  • EXPLAIN 和 EXPLAIN ANALYZE
  • 【AI报表】JimuReport 积木报表 v2.1.3 版本发布,免费可视化报表和大屏
  • Python 爬虫案例:爬取豆瓣电影 Top250 数据
  • 【开题答辩全过程】以 基于SSM的高校疫情防控管理系统为例,包含答辩的问题和答案
  • docker中的命令(六)
  • 轻量实现 OCPP 1.6 JSON 协议(欧洲版)的充电桩调试平台
  • AI使用指南:9月开学季,自动生成教学PPT
  • C++ 用于运行时类型识别的typeinfo库使用指南
  • 飞致云开源社区月度动态报告(2025年8月)
  • 苍穹外卖项目实战(日记十三)-记录实战教程及问题的解决方法-(day3-5) 修改菜品功能实现
  • C# FlaUI win 自动化框架,介绍
  • 用只能以关键字指定和只能按位置传入的参数来设计清晰的接口(Effective Python 第25条)
  • 利用 DrissionPage 精准获取淘宝商品描述:Python 爬虫实战指南
  • shell之扩展
  • 奇瑞QQ的后轮制动器设计cad+三维图+设计说明书
  • 【Java】谈谈IdentityHashMap
  • 前阿里专家揭秘:你对中国十大GEO专家的认知,99%都是错的
  • 苹果ipa应用安装包ios系统闪退问题
  • 携程旅行网景区,评论数据爬虫项目数据库保存附源码
  • 需求工程——你真的懂吗
  • C 基础(1) - 初识C语言
  • 在Docker容器中运行Windows:Dockur Windows项目全面解析
  • 机器翻译:python库PyGTranslator的详细使用
  • 身份证识别及信息核验 API 对接说明
  • 手写MyBatis第47弹:Interceptor接口设计与Invocation上下文传递机制--MyBatis动态代理生成与方法拦截的精妙实现
  • AI公共数据分析完整实战教程:从原始数据到商业洞察【网络研讨会完整回放】
  • AR-LSAT 推理任务全解析:从逻辑推理到类比推理的挑战