class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。

Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

动态切换多个 class

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style>
.active {width: 100px;height: 100px;background: green;
}
.text-danger {background: red;
}
</style>
</head>
<body>
<div id="app"><div class="static"v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>
</div><script>
new Vue({el: '#app',data: {isActive: true,hasError: true}
})
</script>
</body>
</html>

text-danger 类背景颜色覆盖了 active 类的背景色.实际渲染后如下:

<div class="static active text-danger"></div>

将样式绑定到对象

HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style>
.active {width: 100px;height: 100px;background: green;
}
.text-danger {background: red;
}
</style>
</head>
<body>
<div id="app"><div v-bind:class="classObject"></div>
</div><script>
new Vue({el: '#app',data: {classObject: {active: true,'text-danger': true}}
})
</script>
</body>
</html>

以上效果都是一样的,如下图:

computed 对象属性

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style>
.active {width: 100px;height: 100px;background: green;
}
.text-danger {background: red;
}
</style>
</head>
<body>
<div id="app"><div v-bind:class="classObject"></div>
</div><script>
new Vue({el: '#app',data: {isActive: true,error: null},computed: {classObject: function () {return {active: this.isActive && !this.error,'text-danger': this.error && this.error.type === 'fatal',}}}
})
</script>
</body>
</html>

效果为绿色。

数组语法[]

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style>
.active {width: 100px;height: 100px;background: green;
}
.text-danger {background: red;
}
</style>
</head>
<body>
<div id="app"><div v-bind:class="[activeClass, errorClass]"></div>
</div><script>
new Vue({el: '#app',data: {activeClass: 'active',errorClass: 'text-danger'}
})
</script>
</body>
</html>

效果为红色。

三元表达式

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style>
.text-danger {width: 100px;height: 100px;background: red;
}
.active {width: 100px;height: 100px;background: green;
}
</style>
</head>
<body>
<div id="app"><div v-bind:class="[errorClass ,isActive ? activeClass : '']"></div>
</div><script>
new Vue({el: '#app',data: {isActive: true,activeClass: 'active',errorClass: 'text-danger'}
})
</script>
</body>
</html>

效果为绿色。

转载于:https://www.cnblogs.com/boonya/p/7092649.html

VueJS样式绑定v-bind:class相关推荐

  1. VueJS样式绑定:v-bind

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  2. 五十九、Vue中的样式绑定

    @Author:Runsen @Date:2020/10/16 大四是一个焦虑的时期.烦恼有时候是具体问题带来的压力,有时候却是无端的.莫名其妙的,有时候还极易受到外界的影响,别人一句话就会激起内心难 ...

  3. Angular属性绑定,class绑定,事件绑定,属性样式绑定

    多谢大佬指正,原创转载连接. 属性绑定 插值表达式:src="{{user.pic}}" 使用: [ ] :[property]="变量" 使用:bind-:b ...

  4. Vue2利用分支、循环、属性样式绑定实现选项卡图片切换

    课前准备 带领大家学习分支(if.else).以及循环(for) 至于属性与样式绑定在上一篇文章已经讲解 分支 循环 实现选项卡 分支(if.else if.else) 主要指if.else if.e ...

  5. vue条件渲染、列表渲染、样式绑定

    vue 官网 ---- https://cn.vuejs.org/v2/guide/class-and-style.html 样式绑定 class绑定 1.对象语法 <div class=&qu ...

  6. Attribute 绑定、类绑定和样式绑定

    Attribute 绑定.类绑定和样式绑定 1. 绑定到 Attribute 优先设置带有 Property 绑定的元素的 Property.如果没有可绑定的元素 Property,可以使用 Attr ...

  7. 007_Vue style样式绑定

    1. style样式绑定处理 1.1. 对象语法 <div v-bind:style="{width: '400px', height: '50px'}"></d ...

  8. 案例:简单计算器|| 属性绑定||v-model指令的本质||样式绑定

    需求:实现简单的加法计算,分别输入数值a和数值b ,点击计算按钮,结果显示在下面. <!DOCTYPE html> <html lang="en"> < ...

  9. Vue.js学习系列(三十四)-- Vue.js样式绑定(五)

    2019独角兽企业重金招聘Python工程师标准>>> 2. Vue.js style(内联样式) 我们可以在 v-bind:style 直接设置样式: <!DOCTYPE h ...

最新文章

  1. 转:MySQL史上最全性能优化方式
  2. ad中电容用什么封装_二极管在电路中到底做什么用的
  3. mysql8.0.12不能用_使用最新版本MySQL8.0.12报错记录
  4. 波形捕捉:(3)捕捉设备性能
  5. Netty笔记(七)ChannelHandlers and Codes 整合
  6. linux进程泄漏如何定位,定位Linux下定位进程被谁KILL
  7. 如何画圆柱_木饰面、金属包立柱,该如何设计?
  8. Windows Phone开发之 WebClient 讲解
  9. Cool Edit Pro 中把歌曲的原唱声消除掉制作伴奏带
  10. 【设计原则】软件开发中的原则
  11. 立而不破,华为云注解政企智能升级的“道与术”
  12. Revel敏捷后台开发框架
  13. SLAM基础——李群李代数
  14. 明天太阳照常升起的概率是多少?
  15. 互联网打印机协议IPP分析
  16. CSS——很多让p变红的方法
  17. 用户画像基础之数据架构
  18. TDSQL-C PostgreSQL(CynosDB) 内核解密-披荆斩棘,勇往直前的腾讯云数据库
  19. 《《世界因你而不同》》——读后感
  20. idea2018 2020_新生2020级数字艺术系学生作品展

热门文章

  1. bzoj3322 最大生成树+LCA
  2. [Java][Servlet] Failed to destroy end point associated with ProtocolHandler [http-nio-8080]
  3. 【Acm】算法之美—Fire Net
  4. JavaScript Promise对象
  5. mongoose数据查询or、and、where等用法
  6. android上实现0.5px线条
  7. LeetCode(500)——键盘行(JavaScript)
  8. npm ERR! code ENOENT npm ERR! syscall open npm ERR! errno -4058 npm ERR! enoent ENOENT: no such file
  9. CSS基本知识之常用的选择器分类
  10. 让我变得开朗了很多哦