文章目录

  • 1. class 属性绑定
    • 语法示例
    • 完整示例
  • 2. 属性的覆盖
    • 2.1 绑定多个值相互覆盖
      • 语法示例
      • 完整示例
    • 2.2 绑定一个对象(对象成员间覆盖)
      • 语法示例
      • 完整示例
  • 3. 绑定对象的计算属性
    • 语法示例
    • 完整示例
  • 4. 绑定数组
    • 4.1 直接绑定一个数组
      • 语法示例
      • 完整示例
    • 4.2 覆盖顺序
    • 4.3 绑定一个是数组的object
    • 4.4 控制数组成员是否生效
      • 语法示例
      • 完整示例
      • 再次强调顺序

1. class 属性绑定

语法示例

  <div id="app"><div v-bind:class="{ 'active': isActive }"></div></div>

说明:
名为app的ID被 Vue实例绑定
active 是前边定义的stlye
isActive 是一个bool值,true的时候样式被调用

完整示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><style>.active {width: 100px;height: 100px;background: green;}</style>
</head><body><div id="app"><div v-bind:class="{ 'active': isActive }"></div></div><script>new Vue({el: '#app',data: {isActive: true}})</script>
</body></html>
  • 结果显示

2. 属性的覆盖

2.1 绑定多个值相互覆盖

语法示例

三个active,前边相同项的会被后边的覆盖

<div id="app"><div class="static"v-bind:class="{ 'active1': true , 'active2': true, 'active3': true}"></div>
</div>

完整示例

  • 代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><style>.active {width: 100px;height: 100px;background: green;}.red {background: red;}.blue {background: blue;}</style>
</head><body><div id="app"><div class="static" v-bind:class="{ 'active': isActive , 'red': hasError, 'blue': true}"></div></div><script>new Vue({el: '#app',data: {isActive: true,hasError: true}})</script>
</body></html>
  • 结果显示

active中定义的绿色会被red中定义的红色覆盖,red中定义的红色又会被后边blue定义的蓝色覆盖,最终显示为蓝色。
active中定义的大小因为后边都没有定义,因此不会改变

2.2 绑定一个对象(对象成员间覆盖)

和2.1中效果相同

语法示例

  • 绑定一个对象 “classObject”
  <div id="app"><div class="static" v-bind:class="classObject"></div></div>
  • Vue实例中,定义classObject的各成员
classObject: {active: true,red: true,blue: true
}

完整示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><style>.active {width: 100px;height: 100px;background: green;}.red {background: red;}.blue {background: blue;}</style>
</head><body><div id="app"><div class="static" v-bind:class="classObject"></div></div><script>new Vue({el: '#app',data: {classObject: {active: true,red: true,blue: true}}})</script>
</body></html>

3. 绑定对象的计算属性

语法示例

  • 绑定一个对象
  <div id="app"><div v-bind:class="classObject"></div></div>
  • 被绑定对象定义在voe示例的计算属性中
      computed: {classObject: function () {return {base: true,active: this.isActive && !this.error.value,danger: this.error.value && this.error.type === 'fatal',}}}

完整示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><style>.base {width: 100px;height: 100px;}.active {background: green;}.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: {value: false,type: 'fatal'}},computed: {classObject: function () {return {base: true,active: this.isActive && !this.error.value,danger: this.error.value && this.error.type === 'fatal',}}}})</script>
</body></html>
  • 结果显示
    满足active条件时是绿色方块
    满足danger条件时是红色方块

4. 绑定数组

4.1 直接绑定一个数组

语法示例

  • 绑定数组
<div v-bind:class="[activeClass, errorClass]"></div>
  • 在vue实例中定义数组中的数据
      data: {activeClass: 'active',errorClass: 'text-danger'}

完整示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/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>

4.2 覆盖顺序

  • 和数组顺序无关

  • 和实例中定义值的顺序无关

  • style中定义顺序有关,相同项写在前边的会被后边的覆盖

因此上例中,如果我们如下写,就会显示绿色

  <style>.text-danger {background: red;}.active {width: 100px;height: 100px;background: green;}</style>

4.3 绑定一个是数组的object

  • 绑定数组的object
  <div id="app"><div v-bind:class="myClass"></div></div>
  • 在vue实例中定义数组
      data: {myClass: ['active','text-danger']}

4.4 控制数组成员是否生效

语法示例

  <div id="app"><div v-bind:class="[errorClass ,true ? activeClass : '']"></div></div>

说明:

  • errorClass 一直存在
  • activeClass:
    true 时,activeClass生效
    false时,activeClass不生效。

注意:是否能成功覆盖,和stlye中定义的顺序有关,我们将在后边说明。

完整示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CROW-宋</title><script src="https://cdn.staticfile.org/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: false,activeClass: 'active',errorClass: 'text-danger'}})</script>
</body></html>
  • vue实例中 isActive: false时结果

  • vue实例中 isActive: true时结果

再次强调顺序

和之前说的一样,数组成员覆盖顺序仍然只和style中的顺序有关

因此,我们如果这样写stlye

    .active {width: 100px;height: 100px;background: green;}.text-danger {width: 100px;height: 100px;background: red;}

即使 activeClass 生效,一样会被 errorClass 的红色覆盖。


Vue.js基础-06-绑定样式(v-bind)-01-绑定class属性(v-bind:class)相关推荐

  1. Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定

    Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...

  2. # vue.js 之 对vue.js基础理解

    vue.js 之 对vue.js基础理解 Vue构造器 1 . Vue.js是一个构造函数,编程中称之为构造器 2 . 每一个new Vue() 都是一个Vue构造函数的实例,这个过程叫做实例化 3 ...

  3. Vue.js基础-07-绑定事件(v-on)-01-点击事件(click)

    文章目录 1. 点击事件参数(click) 1.1 基本使用 1.2 绑定一个方法 1.3 冒泡事件 说明 示例 2. 点击事件修饰符 2.1 .stop (阻止冒泡) 使用说明 使用示例 2.2 c ...

  4. vue.js基础知识篇(4):过滤器、class与style的绑定2

    代码下载:网盘 欢迎私信 第一章:过滤器 过滤器是对数据进行处理并返回结果的函数. 1.语法 语法是使用管道符"|"进行连接.过滤器可以接收参数,跟在过滤器后面,带引号的参数被当做 ...

  5. Vue.js:使用v-bind为多个元素绑定style样式案例

    使用v-bind为多个元素绑定单个style 此案例主要是通过v-bind:style在元素上绑定单个style,实现为元素设置不同的样式的效果.当在浏览器中的页面进行显示的时候,如果不勾选复选框,则 ...

  6. vue.js 基础学习 11天 -- 转载 某培训机构 学习资料 (转载链接未找到-暂定原创 - 非原创)

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念:打包工具 Webpack , Gulp 后5天: 以项目驱动教学: 什么是Vue.js Vue.js 是目前最火的一个前 ...

  7. Vue.js基础教程

    一.简单介绍 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当 ...

  8. vue js基础语法

    什么是vue vue是目前前端主流的js框架,它和库的区别在于: 库是更多是一个封装好的特定的集合,提供给开发者使用,而且是特定于某一方面的集合(方法和函数),库没有控制权,控制权在使用者手中,在库中 ...

  9. Vue.js基础知识

    一.Vue.js是什么? 它是一套用于构建用户界面的渐进式框架.其设计为自底向上逐层应用.Vue只关心视图层. 二.声明式的渲染 1. Vue.js的核心是采用简洁的模板语法来声明式地将数据渲染到DO ...

最新文章

  1. 计算机视觉方向简介:深度图补全
  2. linux六种进程状态,Linux操作系统中进程的七种状态
  3. html5 判断手机电脑,H5_0006:JS判断PC,平板,手机平台的方法
  4. Leetcode题库 15.三数之和_0(双指针 C实现)
  5. C#生成CHM文件(中级篇)
  6. python中字典数据的特点_Python数据类型(字典)
  7. AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程
  8. 文档加载完成覆盖_在完成文档之前,作业尚未完成
  9. mysql 5.1.71_MySQL升级从5.1.71到5.7.17
  10. fdisk 创建和维护磁盘分区命令(MBR分区方案)
  11. Java Eclipse部分图标汇总
  12. 联想电脑白屏了按哪个键可以修复?
  13. mysql僵尸进程_僵尸Z进程和D进程
  14. 字符串(varchar)和二进制(varbinary)互转
  15. 推荐系统精排模型中的ID特征
  16. 2022-2028年全球与中国智能天线行业发展趋势及投资战略分析
  17. java的书可以二手_基于jsp的二手书图书-JavaEE实现二手书图书 - java项目源码
  18. css案例 - 评分效果的星星✨外衣
  19. 计算机 实验室安全准入制度,合肥工业大学实验室安全准入制度
  20. Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本

热门文章

  1. Failure [-26: Package sdkemo new target SDK 18 doesn't support runtime permissions but the old t...
  2. 大数据之MapReduce并行算法简单概括
  3. 51nod 1256 乘法逆元
  4. 使用gparted拓展ubuntu根目录
  5. linux磁盘分区工具gparted下载,GParted下载
  6. 网络带宽和流量单位换算
  7. 安卓实现文本以pdf格式保存,导出时中文出现的空白问题,以及打印pdf文档
  8. Flutter 凸起效果底部导航栏一
  9. indoor是什么意思_indoor是什么意思中文翻译
  10. ArcEngine开发——mxd转图片输出